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

2021-08-21 00:22:21 字數 1077 閱讀 2122

題目描述

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

思路分析

此題同原  leetcode(101)symmetric tree

整體思路:將對稱二叉樹的檢驗轉換為與映象二叉樹是否為相等樹的問題

遞迴方法 比較對應左子樹與右子樹值

迴圈方法 層序遍歷 比較

**

方法一 遞迴

boolean issymmetrical(treenode proot)

boolean issymmetrical(treenode proot1,treenode proot2)

if (proot1==null || proot2==null)

if (proot1.val == proot2.val)

return false;

}

結果

方法二 迴圈

boolean issymmetrical(treenode proot)

boolean issymmetrical(treenode proot1,treenode proot2)

if (temp1==null || temp2==null || temp1.val!=temp2.val)

queue.offer(temp1.left); //對稱條件 左子樹的左節點與右子樹的右節點比較

queue.offer(temp2.right);

queue.offer(temp1.right); //左子樹的右節點與右子樹的左節點比較

queue.offer(temp2.left);

} return true;

}

結果

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

q 請實現乙個函式,用來判斷一顆二叉樹是不是對稱的。注意,如果乙個二叉樹同此二叉樹的映象是同樣的,定義其為對稱的。a 遞迴 bool issymmetrical treenode proot bool comp treenode left,treenode right 非遞迴 感謝 hustza 利...

58 對稱的二叉樹 劍指offer

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

劍指offer 58 對稱的二叉樹

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