更多題目移步【力扣簡(jiǎn)單題】
題目
難度:★☆☆☆☆
類型:二叉樹(shù)
給定兩個(gè)二叉樹(shù),編寫(xiě)一個(gè)函數(shù)來(lái)檢驗(yàn)它們是否相同。
如果兩個(gè)樹(shù)在結(jié)構(gòu)上相同,并且節(jié)點(diǎn)具有相同的值,則認(rèn)為它們是相同的。
示例
示例 1:
輸入: [1,2,3], [1,2,3]
1 1
/ \ / \
2 3 2 3
輸出: true
示例 2:
輸入: [1,2], [1,null,2]
1 1
/ \
2 2
輸出: false
示例 3:
輸入: [1,2,1], [1,1,2]
1 1
/ \ / \
2 1 1 2
輸出: false
解答
判定兩棵二叉樹(shù)是否相等,需要進(jìn)行如下判斷:
兩棵二叉樹(shù)均為空,則相等;
兩棵二叉樹(shù)其中一棵為空,另一棵不為空,則不相等;
兩棵二叉樹(shù)均不為空,如果根節(jié)點(diǎn)的值相等,左子樹(shù)相等和右子樹(shù)相等,則這兩棵二叉樹(shù)相等,否則不相等。
代碼實(shí)現(xiàn)如下:
class Solution:
def isSameTree(self, p, q):
def same_tree(p, q):
if not p and not q: # 兩棵樹(shù)均為空
return True
elif not p and q or not q and p: # 兩棵樹(shù)只有一棵為空
return False
else:
return p.val == q.val and same_tree(p.left, q.left) and same_tree(p.right, q.right)
return same_tree(p, q)
如有疑問(wèn)或建議,歡迎評(píng)論區(qū)留言~