Leetcode刷题笔记题解(C++):100. 相同的树

tech2023-05-08  99

思路:挨个去判断是否相等

1.如果当前的节点都为空,则说明没有子节点了,返回true

2.如果当前的节点只有一个为空,则返回false

3.如果当前节点的值不相等,则返回false

4.如果相等且还有子节点继续向下判断

/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : val(0), left(nullptr), right(nullptr) {} * TreeNode(int x) : val(x), left(nullptr), right(nullptr) {} * TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {} * }; */ class Solution { public: bool isSameTree(TreeNode* p, TreeNode* q) { //如果当前的节点都为空,则返回true if(p==NULL&&q==NULL) return true; //如果当前只有一个为空,则返回false if(p==NULL||q==NULL) return false; //如果当前的两个节点的值不相等 if(p->val!=q->val) return false; //对于子节点进行判断 return isSameTree(p->left,q->left)&&isSameTree(p->right,q->right); } };

 

最新回复(0)