三道關於樹的題都可以用遞迴來做,看似很相近
有時候乙個遞迴不能解決問題,要用兩個。乙個滿足條件時繼續判斷,另乙個分支為不滿足條件時繼續,如:
樹的子結構:
/*
struct treenode
};*/
class
solution
bool
solve
(treenode* p1, treenode* p2)
return flag;}}
;
二叉樹的映象: 此題核心就是交換左右子樹,一路進行下去即可
/*
struct treenode
};*/
class
solution
};
對稱的二叉樹:此題可從 根節點的左右開始遞迴,因此此時所有子條件的遞迴條件相同。 可利用二叉樹的遍歷,前序以及前序的變體
/*
struct treenode
};*/
class
solution
bool
solve
(treenode* p1,treenode*p2)
};
二叉樹應用 二叉樹映象(對稱)
題目 完成乙個函式,輸入乙個二叉樹,該函式輸出它的映象。如 分析 對於乙個二叉樹的映象過程,我們可以先前序遍歷這棵樹的每乙個節點,如果遍歷到的節點有子節點,就交換它的兩個子節點。當交換完所有的飛葉子節點之後,就得到了樹的映象。具體實現 struct treenode void mirrorrecur...
對稱二叉樹c 對稱的二叉樹
很簡單,關鍵還是知道怎麼樣才能判斷乙個 二叉樹是否對稱,只要採用前序 中序 後序 層次遍歷等任何一種遍歷方法,分為先左後右和先 右後左兩種方法,只要兩次結果相等就說明這棵樹是一顆對稱二叉樹。迭代版本 class solution public bool issymmetric treenode ro...
二叉樹的映象 對稱的二叉樹 Java實現
題目描述 操作給定的二叉樹,將其變換為源二叉樹的映象。輸入描述 二叉樹的映象定義 原二叉樹 8 6 10 5 7 9 11 映象二叉樹 8 10 6 11 9 7 5思路分析 先前序遍歷這棵樹的每個結點,如果遍歷的節點有子節點,那麼就進行左右子節點的交換。遞迴實現 public void mirro...