給你兩棵二叉樹的根節點 p 和 q ,編寫乙個函式來檢驗這兩棵樹是否相同。
如果兩個樹在結構上相同,並且節點具有相同的值,則認為它們是相同的。
示例 1:
輸入:p =[1
,2,3
], q =[1
,2,3
]輸出:true
示例 2:
輸入:p =[1
,2], q =[1
,null,2]
輸出:false
示例 3:
輸入:p =[1
,2,1
], q =[1
,1,2
]輸出:false
兩棵樹上的節點數目都在範圍 [0, 100] 內
-104 <= node.val <= 104
這是一道經典的遞迴,與之前做的一道題395. 至少有k個重複字元的最長子串相類似
相對於數列與子數列(子串),二叉樹也可以有相對應的概念,於是可以把所求樹在判斷中化為「子樹」進行縮小範圍
另外一點,對於issametree()
這個函式,我們不能簡單的理解為對樹的乙個判斷,本質上它是對結點的判斷,只是遞迴的結構決定了它最終的功能
class
solution
:def
issametree
(self, p: treenode, q: treenode)
->
bool:if
not p and
not q:
return
true
elif
not p or
not q:
return
false
elif p.val != q.val:
return
false
else
:return self.issametree(p.left, q.left)
and self.issametree(p.right, q.right)
100 相同的樹
鏈結 給定兩個二叉樹,編寫乙個函式來檢驗它們是否相同。如果兩個樹在結構上相同,並且節點具有相同的值,則認為它們是相同的。示例 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 ...
100 相同的樹
給定兩個二叉樹,編寫乙個函式來檢驗它們是否相同。如果兩個樹在結構上相同,並且節點具有相同的值,則認為它們是相同的。示例 1 輸入 1 1 2 3 2 3 1,2,3 1,2,3 輸出 true思路 注釋 public boolean issametree treenode p,treenode q ...
100 相同的樹
給定兩個二叉樹,編寫乙個函式來檢驗它們是否相同。如果兩個樹在結構上相同,並且節點具有相同的值,則認為它們是相同的。示例 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...