請實現乙個函式,用來判斷一顆二叉樹是不是對稱的。注意,如果乙個二叉樹同此二叉樹的映象是同樣的,定義其為對稱的。
/*思路:首先根節點以及其左右子樹,左子樹的左子樹和右子樹的右子樹相同
* 左子樹的右子樹和右子樹的左子樹相同即可,採用遞迴
* 非遞迴也可,採用棧或佇列訪問各級子樹根節點
*/
boolean issymmetrical(treenode proot)
private boolean issymmetrical(treenode left, treenode right)
* 1.出棧的時候也是成對成對的 ,
(1)若都為空,繼續;
(2)乙個為空,返回false;
(3)不為空,比較當前值,值不等,返回false;
* 2.確定入棧順序,每次入棧都是成對成對的,如left.left, right.right ;left.rigth,right.left
*/
boolean issymmetricaldfs(treenode proot)
return true;
}
/**bfs使用queue來儲存成對的節點,**和上面極其相似
* 1.出隊的時候也是成對成對的
1.若都為空,繼續;
2.乙個為空,返回false;
3.不為空,比較當前值,值不等,返回false;
* 2.確定入隊順序,每次入隊都是成對成對的,如left.left, right.right ;left.rigth,right.left
*/
boolean issymmetricalbfs(treenode proot)
return true;
}
58 劍指offer 對稱的二叉樹
題目描述 請實現乙個函式,用來判斷一顆二叉樹是不是對稱的。注意,如果乙個二叉樹同此二叉樹的映象是同樣的,定義其為對稱的。解題思路 定義一種遍歷方式,先遍歷父結點,然後遍歷右結點,然後遍歷左結點 如果為對稱二叉樹,則與前序遍歷相同。注意點 對於乙個結點如果其沒有子結點,應該將其子結點位置特殊處理,例如...
劍指offer 第58題 對稱二叉樹
請實現乙個函式,用來判斷一顆二叉樹是不是對稱的。注意,如果乙個二叉樹同此二叉樹的映象是同樣的,定義其為對稱的。遞迴,判斷左子樹和又子樹是不是一樣 class solution def issymmetrical self,proot write code here return self.issam...
58 對稱的二叉樹 劍指offer
請實現乙個函式,用來判斷一顆二叉樹是不是對稱的。注意,如果乙個二叉樹同此二叉樹的映象是同樣的,定義其為對稱的。很簡單,關鍵還是知道怎麼樣才能判斷乙個 二叉樹是否對稱,只要採用前序 中序 後序 層次遍歷等任何一種遍歷方法,分為先左後右和先 右後左兩種方法,只要兩次結果相等就說明這棵樹是一顆對稱二叉樹。...