58對稱的二叉樹

2021-10-02 08:43:23 字數 700 閱讀 1087

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

根據對稱的定義,我們可以將二叉樹通過層次遍歷轉換為陣列進行比較,分別為從左到右和從右到左遍歷,null結點也需記錄,最後遍歷比較兩個陣列的元素。

根據對稱的定義,需要檢驗左右結點的值是否相等且對稱的子樹也相等。此方法的具體實現,可以參照牛客的解答區,全都是遞迴方法。

public

static

boolean

issymmetrical

(treenode proot)

for(

int i =

0; i < arraylistleft.

size()

; i++)}

return

true;}

/** * 層次遍歷

* @param pnode

* @return

*/public

static arraylist

printtoptobottom

(treenode pnode,

int flag)

arraylist.

add(node);if

(flag==1)

else}}

return arraylist;

}

58 對稱的二叉樹

請實現乙個函式,用來判斷一顆二叉樹是不是對稱的。注意,如果乙個二叉樹同此二叉樹的映象是同樣的,定義其為對稱的。遞迴 先判斷當前兩個節點是否相等,再判斷 節點a左子樹,節點b右子樹 和 節點a右子樹,節點b左子樹 是否相等 ublic class solution return sym proot.l...

58 對稱的二叉樹

題目描述 請實現乙個函式,用來判斷一顆二叉樹是不是對稱的。注意,如果乙個二叉樹同此二叉樹的映象是同樣的,定義其為對稱的。struct treenode class solution 思路 首先根節點以及其左右子樹,左子樹的左子樹和右子樹的右子樹相同,左子樹的右子樹和右子樹的左子樹相同即可,採用遞迴 ...

58 對稱的二叉樹

題目描述 請實現乙個函式,用來判斷一顆二叉樹是不是對稱的。注意,如果乙個二叉樹同此二叉樹的映象是同樣的,定義其為對稱的。分析 深入理解對稱 1 首先將二叉樹腦補為滿二叉樹,沒有的節點用null代替,2 二叉樹分別按照 根 左 右 和 根 右 左 順序遍歷,若兩次遍歷結果一致,即 對稱。struct ...