請實現乙個函式,用來判斷一顆二叉樹是不是對稱的。注意,如果乙個二叉樹同此二叉樹的映象是同樣的,定義其為對稱的。
二叉樹的遍歷,不管是前序,中序還是後序都是先遍歷左結點,然後再是右結點。設計乙個先遍歷右結點的前序遍歷方法。然後和前序遍歷序列進行比較,一樣的就是對稱序列。需要注意的是在遍歷過程中遇到null也要加入遍歷序列防止出現下面的情況:
1 / \
1 1
/ \
1 1 前序和先右再左的前序序列是一樣的但是並不是對稱二叉樹。
/*
public
class treenode }*/
public
class solution
boolean issymmetrical(treenode proot1,treenode proot2)
if(proot1 == null || proot2 == null)
if(proot1.val != proot2.val)
return issymmetrical(proot1.left,proot2.right) && issymmetrical(proot1.right,proot2.left);
}}
對稱二叉樹c 對稱的二叉樹
很簡單,關鍵還是知道怎麼樣才能判斷乙個 二叉樹是否對稱,只要採用前序 中序 後序 層次遍歷等任何一種遍歷方法,分為先左後右和先 右後左兩種方法,只要兩次結果相等就說明這棵樹是一顆對稱二叉樹。迭代版本 class solution public bool issymmetric treenode ro...
對稱二叉樹
請實現乙個函式,用來判斷一顆二叉樹是不是對稱的。注意,如果乙個二叉樹同此二叉樹的映象是同樣的,定義其為對稱的。這題還是蠻簡單的。對稱二叉樹 include using namespace std struct treenode bool issymmetrical treenode proot1,t...
對稱二叉樹
請實現乙個函式,用來判斷一顆二叉樹是不是對稱的。注意,如果乙個二叉樹同此二叉樹的映象是同樣的,定義其為對稱的。solution public class treenode 我們可以通過比較二叉樹的前序遍歷序列和對稱前序遍歷序列來判斷二叉樹是不是對稱的 public class solution bo...