LeetCode 100. 相同的樹(C、python)
阿新 • • 發佈:2018-11-21
給定兩個二叉樹,編寫一個函式來檢驗它們是否相同。
如果兩個樹在結構上相同,並且節點具有相同的值,則認為它們是相同的。
示例 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
C
/** * Definition for a binary tree node. * struct TreeNode { * int val; * struct TreeNode *left; * struct TreeNode *right; * }; */ bool isSameTree(struct TreeNode* p, struct TreeNode* q) { if(NULL==p || NULL==q) { if(p==q) { return true; } else { return false; } } return p->val==q->val && isSameTree(p->left,q->left) && isSameTree(p->right,q->right); }
python
# Definition for a binary tree node. # class TreeNode: # def __init__(self, x): # self.val = x # self.left = None # self.right = None class Solution: def isSameTree(self, p, q): """ :type p: TreeNode :type q: TreeNode :rtype: bool """ if None==p or None==q: if p==q: return True else: return False return p.val==q.val and self.isSameTree(p.left,q.left) and self.isSameTree(p.right,q.right)