58 劍指offer 對稱的二叉樹

2021-10-04 13:00:32 字數 1078 閱讀 4280

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

/*思路:首先根節點以及其左右子樹,左子樹的左子樹和右子樹的右子樹相同

* 左子樹的右子樹和右子樹的左子樹相同即可,採用遞迴

* 非遞迴也可,採用棧或佇列訪問各級子樹根節點

*/

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

請實現乙個函式,用來判斷一顆二叉樹是不是對稱的。注意,如果乙個二叉樹同此二叉樹的映象是同樣的,定義其為對稱的。很簡單,關鍵還是知道怎麼樣才能判斷乙個 二叉樹是否對稱,只要採用前序 中序 後序 層次遍歷等任何一種遍歷方法,分為先左後右和先 右後左兩種方法,只要兩次結果相等就說明這棵樹是一顆對稱二叉樹。...