Day96 | 灵神 | 二叉树 相同的树
100.相同的树
100. 相同的树 - 力扣(LeetCode)
思路:
就是个easy题没啥好说的,就是遍历就行
不同
的情况是
1.p为空q不为空
2.p不为空q为空
3.pq值不同
相同
的情况是
pq均为空
注:pq值相同不能说明是true,还要看pq的左右子树
完整代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| class Solution { public: bool isSameTree(TreeNode* p, TreeNode* q) { if(p==nullptr&&q!=nullptr) return false; else if(p!=nullptr&&q==nullptr) return false; else if(p==nullptr&&q==nullptr) return true; else if(p->val!=q->val) return false; else if(p->val==q->val) return isSameTree(p->left,q->left)&&isSameTree(p->right,q->right); return false; } };
|
灵神的简洁版代码
1 2 3 4 5 6 7 8 9
| class Solution { public: bool isSameTree(TreeNode* p, TreeNode* q) { if (p == nullptr || q == nullptr) { return p == q; } return p->val == q->val && isSameTree(p->left, q->left) && isSameTree(p->right, q->right); } };
|