1 /* 2 * @lc app=leetcode.cn id=100 lang=cpp 3 * 4 * [100] 相同的树 5 */ 6 7 // @lc code=start 8 /** 9 * Definition for a binary tree node. 10 * struct TreeNode { 11 * int val; 12 * TreeNode *left; 13 * TreeNode *right; 14 * TreeNode() : val(0), left(nullptr), right(nullptr) {} 15 * TreeNode(int x) : val(x), left(nullptr), right(nullptr) {} 16 * TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {} 17 * }; 18 */ 19 class Solution { 20 public: 21 22 //若节点都为空,则表示相同的树;若节点都不为空,则节点值相同, 23 //那么我们需要递归判断左右子树是否相等的;若节点有一个不为空, 24 //一个为空,或者节点值不相同,则不为相同的树。 25 bool isSameTree(TreeNode* p, TreeNode* q) { 26 if(p==nullptr&&q==nullptr) return true; 27 if(p!=nullptr&&q!=nullptr&&p->val==q->val) 28 return isSameTree(p->left,q->left) && isSameTree(p->right,q->right); 29 else 30 return false; 31 } 32 }; 33 // @lc code=end