給定乙個二叉樹,檢查它是否是映象對稱的。
例如,二叉樹 [1,2,2,3,4,4,3] 是對稱的。
但是下面這個 [1,2,2,null,3,null,3] 則不是映象對稱的:
解題思路
遞迴結束條件:
都為空指標則返回 true
只有乙個為空則返回 false
遞迴過程:
判斷兩個指標當前節點值是否相等
判斷 a 的右子樹與 b 的左子樹是否對稱
判斷 a 的左子樹與 b 的右子樹是否對稱
短路:在遞迴判斷過程中存在短路現象,也就是做 與 操作時,如果前面的值返回 false 則後面的不再進行計算
時間複雜度:o(n)o(n)
**
容易理解的**:
思路:遞迴
比較當前節點是否為空 是 說明這個節點是對稱的
若其中乙個為空,乙個不為空,說明這個節點不是對稱的
不滿足上述兩種情況(兩個節點都不是空)判斷兩個節點的值是不是相等
同時將這個節點送入這個遞迴函式,在進行判斷。
返回值就是這個節點既應該相等,直到子節點全部都是空為止。
class
solution
public
boolean
ismirror
(treenode t1, treenode t2)
}
給定兩個二叉樹,編寫乙個函式來檢驗它們是否相同。
如果兩個樹在結構上相同,並且節點具有相同的值,則認為它們是相同的。
示例 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
class
solution
if(p==null||q==null)
return
(p.val==q.val)
&&issametree
(p.left,q.left)
&&issametree
(p.right,q.right);}
}
力扣 101 對稱二叉樹
一 題目描述 給定乙個二叉樹,檢查它是否是映象對稱的。例如,二叉樹 1,2,2,3,4,4,3 是對稱的。1 2 2 3 4 4 3 但是下面這個 1,2,2,null,3,null,3 則不是映象對稱的 1 2 2 3 3 二 解題思路 遞迴思想。1 先判斷根節點是否為空節點 2 判斷左子樹a和右...
101 對稱二叉樹 (力扣)
給定乙個二叉樹,檢查它是否是映象對稱的。例如,二叉樹 1,2,2,3,4,4,3 是對稱的。1 2 2 3 4 4 3 但是下面這個 1,2,2,null,3,null,3 則不是映象對稱的 1 2 2 3 3bool issymmetric2 struct treenode q,struct tr...
力扣101 對稱二叉樹
判斷二叉樹是否對稱 給定一棵二叉樹,判斷琪是否是自身的映象 即 是否對稱 例如 下面這棵二叉樹是對稱的 2 2 3 4 4 3 下面這棵二叉樹不對稱。2 2 3 3 備註 希望你可以用遞迴和迭代兩種方法解決這個問題 示例1輸入 輸出true 示例2輸入 輸出false 對稱二叉樹 模式識別 深度搜尋...