根據對稱樹的特點,我們用兩個指標分別往左子節點和右子節點遞迴查詢
每次查詢時比較他們是否都為空,
如果都不為空就比較是否值相等
如果值相等,就繼續檢查左節點的左節點和右節點的右節點、左節點的右節點和右節點的左節點
只要都相同就說明對稱,否則不對稱
我們使用乙個佇列,根據對稱樹的特點,每次分別將左子節點和右子節點放入佇列完成初始化
每次從佇列中取出兩個元素作對比,
對比時,分別判斷空值、不為空值時各種情況
如果發現不等,直接返回;否則繼續按左節點的左節點、右節點的右節點、左節點的右節點、右節點的左節點的順序加入到queue中
/**
* definition for a binary tree node.
* public class treenode
* }*/class
solution
// return check(root.left, root.right);
return
check2
(root);}
private
boolean
check2
(treenode root)if(
(left == null || right == null)
|| left.val != right.val)
queue.
add(left.left)
; queue.
add(right.right)
; queue.
add(left.right)
; queue.
add(right.left);}
return
true;}
}
o(n)
o(n)
遞迴 對稱二叉樹
原題傳送門 說點題外話,這道題是noip2019 pjt4,被稱作有史以來最簡單的t4,然而.我這個小蒟蒻當時只得了4分 直接輸出1 現在回想起來,覺得自己那時是真的智障啊,最可氣的是,這道題一讀題就可以發現結果很容易為3,哪怕完全不會,直接輸出3也明顯比直接輸出1要好啊 事實證明,直接輸出3的得分...
演算法 對稱二叉樹
給定乙個二叉樹,檢查它是否是映象對稱的。例如,二叉樹 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程式入口 treenode root2 new treenode 9 root2.left...
演算法 對稱二叉樹
給定乙個二叉樹,檢查它是否是映象對稱的。參考官方解法,使用兩種方式完成 1.遞迴 如果乙個樹的左子樹與右子樹映象對稱,那麼這個樹是對稱的。如果同時滿足下面的條件,兩個樹互為映象 它們的兩個根結點具有相同的值每個樹的右子樹都與另乙個樹的左子樹映象對稱 我們可以實現這樣乙個遞迴函式,通過 同步移動 兩個...