請實現乙個函式,用來判斷一顆二叉樹是不是對稱的。注意,如果乙個二叉樹同此二叉樹的映象是同樣的,定義其為對稱的。
遞迴:先判斷當前兩個節點是否相等,再判斷(節點a左子樹,節點b右子樹)和(節點a右子樹,節點b左子樹)是否相等
ublic class
solution
return
sym(proot.left, proot.right);}
boolean
sym(treenode a, treenode b)
if(b == null)
if(a.val != b.val)
return
sym(a.left, b.right)
&&sym
(a.right, b.left);}
}
stack dfs,要比較的節點成對入棧出棧
public
class
solution
stack
s =newstack
<
>()
; s.
push
(proot.left)
; s.
push
(proot.right)
;while
(!s.
empty()
)if(a == null || b == null)
if(a.val != b.val)
s.push
(a.left)
; s.
push
(b.right)
; s.
push
(a.right)
; s.
push
(b.left);}
return
true;}
}
queue bfs,要比較的節點成對入隊出隊
public
class
solution
queue
q =newlinkedlist
<
>()
; q.
offer
(proot.left)
; q.
offer
(proot.right)
;while
(!q.
isempty()
)if(a == null || b == null)
if(a.val != b.val)
q.offer
(a.left)
; q.
offer
(b.right)
; q.
offer
(a.right)
; q.
offer
(b.left);}
return
true;}
}
58 對稱的二叉樹
題目描述 請實現乙個函式,用來判斷一顆二叉樹是不是對稱的。注意,如果乙個二叉樹同此二叉樹的映象是同樣的,定義其為對稱的。struct treenode class solution 思路 首先根節點以及其左右子樹,左子樹的左子樹和右子樹的右子樹相同,左子樹的右子樹和右子樹的左子樹相同即可,採用遞迴 ...
58 對稱的二叉樹
題目描述 請實現乙個函式,用來判斷一顆二叉樹是不是對稱的。注意,如果乙個二叉樹同此二叉樹的映象是同樣的,定義其為對稱的。分析 深入理解對稱 1 首先將二叉樹腦補為滿二叉樹,沒有的節點用null代替,2 二叉樹分別按照 根 左 右 和 根 右 左 順序遍歷,若兩次遍歷結果一致,即 對稱。struct ...
58 對稱的二叉樹
2.笨拙的迭代方法 3.巧妙的迭代方法 classname solution description todo date 2019 12 23 14 11 author sonnsei public class solution return issymmetrical root.left,root...