Leetcode::SameTree
2013-05-30 17:18
225 查看
同时遍历两个树;
递归实现:
/** * Definition for binary tree * 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) { // Start typing your C/C++ solution below // DO NOT write int main() function stack<TreeNode *> s_p,s_q; if( !p && ! q) { return true; } else if ( p && q ) { while( (p && q ) ||( !s_p.empty()&& ! s_q.empty() )) { if( p && q) { if(p->val != q->val) { return false; } s_p.push(p); s_q.push(q); p=p->left; q=q->left; } else if( !p && !q) { p=s_p.top(); q=s_q.top(); s_p.pop(); s_q.pop(); p=p->right; q=q->right; } else { return false; } } return true; } else { return false; } } };
递归实现:
/** * Definition for binary tree * 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) { // Start typing your C/C++ solution below // DO NOT write int main() function if( p == NULL && q == NULL ) { return true; } if( p && q ) { if( p->val == q->val ) { return isSameTree(p->left,q->left)&&isSameTree(p->right,q->right); } } return false; } };
相关文章推荐
- 【LeetCode】(100)Same Tree(Easy)
- leetcode之same tree
- LeetCode Same Tree
- LeetCode100——Same Tree
- LeetCode Same Tree
- Leetcode Q100 : Same Tree
- Leetcode: Same Tree
- LeetCode Same Tree
- 【leetcode】比较两棵二叉树是否相同(Same Tree)
- 【LeetCode从零单排】No100 Same Tree && No101 Symmetric Tree
- Leetcode在线编程same-tree
- [LeetCode]Same Tree解题报告
- Leetcode: Same Tree
- leetcode: Same Tree
- leetcode same tree
- LeetCode之Same Tree
- Leetcode Same Tree
- LeetCode Same Tree
- leetCode--same-tree
- Leetcode:Same Tree 菜鸟解法