給定乙個二叉樹,檢查它是否是映象對稱的。
例如,二叉樹[1,2,2,3,4,4,3]
是對稱的。
1但是下面這個/ \2 2
/ \ / \
3 4 4 3
[1,2,2,null,3,null,3]
則不是映象對稱的:
1說明:/ \2 2
\ \
3 3
如果你可以運用遞迴和迭代兩種方法解決這個問題,會很加分。
思路一
遞迴:比較左節點的左節點是否等於右節點的右節點,左節點的右節點是否等於右節點的左節點
class solution思路二迭代public boolean isissymmetrictemp(treenode left,treenode right)
}
class solutionlinkedlistleft = new linkedlist<>();
linkedlistright = new linkedlist<>();
left.push(root.left);
right.push(root.right);
while(!left.isempty()&&!right.isempty())
if((lefttemp!=null&&righttemp == null)||(righttemp!=null&&lefttemp == null))
if(lefttemp.val != righttemp.val)
left.push(lefttemp.left);
left.push(lefttemp.right);
right.push(righttemp.right);
right.push(righttemp.left);
}return true;
}}
對稱二叉樹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...