給定兩個二叉樹,編寫一個函數來檢驗它們是否相同。
如果兩個樹在結構上相同,并且節點具有相同的值,則認為它們是相同的。
示例?1:
輸入: ? ? ? 1 ? ? ? ? 1
? ? ? ? ? / \ ? ? ? / \
? ? ? ? ?2 ? 3 ? ? 2 ? 3? ? ? ? [1,2,3], ? [1,2,3]
輸出: true
示例 2:輸入: ? ? ?1 ? ? ? ? ?1
? ? ? ? ? / ? ? ? ? ? \
? ? ? ? ?2 ? ? ? ? ? ? 2? ? ? ? [1,2], ? ? [1,null,2]
輸出: false
示例?3:輸入: ? ? ? 1 ? ? ? ? 1
? ? ? ? ? / \ ? ? ? / \
? ? ? ? ?2 ? 1 ? ? 1 ? 2? ? ? ? [1,2,1], ? [1,1,2]
輸出: false
來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/same-tree
著作權歸領扣網絡所有。商業轉載請聯系官方授權,非商業轉載請注明出處。
方法一:?
/*** 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 && !q) return true;if(!p || !q) return false;if(p->val != q->val) return false;else return isSameTree(p->left, q->left) && isSameTree(p->right, q->right);}
};
?