您的位置:首页 > 其它

leecode 解题总结:100. Same Tree

2017-02-14 18:19 323 查看
#include <iostream>
#include <stdio.h>
#include <vector>
using namespace std;
/*
问题:
Given two binary trees, write a function to check if they are equal or not.

Two binary trees are considered equal if they are structurally identical and the nodes have the same value.

分析:判定两颗二叉树是否是同一颗。如果两个根节点都为空,是的,否则,如果一个为空,另一个不为空,返回false;
如果两个根节点值不同,返回fasle;重复对两棵树的左右子树进行上述判断
*/
struct TreeNode {
int val;
TreeNode *left;
TreeNode *right;
TreeNode(int x) : val(x), left(NULL), right(NULL) {}
};

class Solution {
public:
bool isSameTree(TreeNode* p, TreeNode* q) {
if(NULL == p && NULL == q)
{
return true;
}
else if(NULL == p)
{
return false;
}
else if(NULL == q)
{
return false;
}
if(p->val != q->val)
{
return false;
}
return isSameTree(p->left , q->left) && isSameTree(p->right , q->right);
}
};

void print(vector<int>& result)
{
if(result.empty())
{
cout << "no result" << endl;
return;
}
int size = result.size();
for(int i = 0 ; i < size ; i++)
{
cout << result.at(i) << " " ;
}
cout << endl;
}

void process()
{
vector<int> nums;
int value;
int num;
Solution solution;
vector<int> result;
while(cin >> num )
{
nums.clear();
for(int i = 0 ; i < num ; i++)
{
cin >> value;
nums.push_back(value);
}
}
}

int main(int argc , char* argv[])
{
process();
getchar();
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: