1.分治遞迴:
一顆二叉樹為對稱二叉樹,需滿足其左右子樹對稱。
而兩棵二叉樹對稱需滿足根節點的值相等,且每個樹的左子樹都與另乙個數的右子樹對稱。
2.改變後的層次遍歷(迭代):
使用佇列,元素型別為指向樹節點的指標。
一次出隊兩個元素,設為p1,p2。若它們指示的節點的值不相同,return false。然後,將所指示兩個結點的左右孩子按相反的順序插入佇列中,即依次入隊指向以下節點的指標:p1->left,p2->right,p1->right,p2->left。
當隊列為空或出佇列的兩個節點值不相同時,迴圈結束。
在迴圈開始之前,首先將樹根的左孩子與右孩子入隊。
分治遞迴:
/**
* definition for a binary tree node.
* struct treenode
* };
*/class
solution
bool
decision
( treenode* root1,treenode* root2 )
};
改變後的層次遍歷(迭代):/**
* definition for a binary tree node.
* struct treenode
* };
*/class
solution
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...