58 對稱的二叉樹

2021-09-25 02:08:35 字數 1539 閱讀 8048

請實現乙個函式,用來判斷一顆二叉樹是不是對稱的。注意,如果乙個二叉樹同此二叉樹的映象是同樣的,定義其為對稱的。

遞迴:先判斷當前兩個節點是否相等,再判斷(節點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...