【leetcode】100-Same Tree
problem
Same Tree
code
回归的方法
/** * Definition for a binary tree node. * 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(p==NULL || q==NULL) return(p==q); return ( (p->val==q->val) && isSameTree(p->left, q->left) && isSameTree(p->right, q->right) ); } };
or just one line code
class Solution { public: bool isSameTree(TreeNode* p, TreeNode* q) { return (p==NULL||q==NULL) ? (p==q) : ((p->val==q->val) && isSameTree(p->left, q->left) && isSameTree(p->right, q->right)); } };
这道题还有非递归的解法,因为二叉树的四种遍历(层序,先序,中序,后序)均有各自的迭代和递归的写法,这里我们先来看先序的迭代写法,相当于同时遍历两个数,然后每个节点都进行比较.
参考
1. Same Tree;
2. GrandYang_cnblogs;
3. leeetcode_discuss;
完
各美其美,美美与共,不和他人作比较,不对他人有期待,不批判他人,不钻牛角尖。
心正意诚,做自己该做的事情,做自己喜欢做的事情,安静做一枚有思想的技术媛。
版权声明,转载请注明出处:https://www.cnblogs.com/happyamyhope/
心正意诚,做自己该做的事情,做自己喜欢做的事情,安静做一枚有思想的技术媛。
版权声明,转载请注明出处:https://www.cnblogs.com/happyamyhope/