請實現乙個函式,用來判斷一顆二叉樹是不是對稱的。注意,如果乙個二叉樹同此二叉樹的映象是同樣的,定義其為對稱的。
根據對稱的定義,我們可以將二叉樹通過層次遍歷轉換為陣列進行比較,分別為從左到右和從右到左遍歷,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 ...