劍指offer系列 58 對稱的二叉樹

2022-06-24 09:42:10 字數 770 閱讀 1168

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

a:遞迴:

bool issymmetrical(treenode *proot) 

bool comp(treenode *left, treenode *right)

非遞迴(感謝@hustza):

利用dfs:

出棧的時候也是成對成對的 ,

1.若都為空,繼續;

2.乙個為空,返回false;

3.不為空,比較當前值,值不等,返回false;

4.確定入棧順序,每次入棧都是成對成對的,如left.left, right.right ;left.rigth,right.left

boolean issymmetricaldfs(treenode proot)

return true;

}

利用bfs:

出隊的時候也是成對成對的

1.若都為空,繼續;

2.乙個為空,返回false;

3.不為空,比較當前值,值不等,返回false;

4.確定入隊順序,每次入隊都是成對成對的,如left.left, right.right ;left.rigth,right.left

boolean issymmetricalbfs(treenode proot)

return true;

}

劍指offer系列(58)對稱二叉樹

題目描述 請實現乙個函式,用來判斷一顆二叉樹是不是對稱的。注意,如果乙個二叉樹同此二叉樹的映象是同樣的,定義其為對稱的。思路分析 此題同原 leetcode 101 symmetric tree 整體思路 將對稱二叉樹的檢驗轉換為與映象二叉樹是否為相等樹的問題 遞迴方法 比較對應左子樹與右子樹值 迴...

58 對稱的二叉樹 劍指offer

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

劍指offer 58 對稱的二叉樹

請實現乙個函式,用來判斷一顆二叉樹是不是對稱的。注意,如果乙個二叉樹同此二叉樹的映象是同樣的,定義其為對稱的。時間限制 1秒 空間限制 32768k 熱度指數 121507 見 struct treenode class solution bool match treenode l,treenode...