劍指 offer 27. 二叉樹的映象
請完成乙個函式,輸入乙個二叉樹,該函式輸出它的映象。
示例 1:
輸入:root = [4,2,7,1,3,6,9]
輸出:[4,7,2,9,6,3,1]
限制:
0 <= 節點個數 <= 1000
題解
這道題本身不難,但是有很多種驚豔的解法,特此記錄下來
一.(個人所寫)
class solution
treenode* dfs(treenode*root)
};
其實這種演算法我一開始沒有想起來,是畫了一遍之後才意識到的;
二.這是我看到這個題後就想起來的做法;
特定深度鍊錶這個題解裡有本題做法的思想,那麼關鍵就說一說思想了;
不過因為比較麻煩,所以沒寫出來,===>此處的關鍵是,你如何知道這一層有幾個結點?可以看看上面"特定深度鍊錶"的第二個題解.
三利用棧來做
class solution };
while(!stack.isempty())
return root;}}
其實,遞迴的底層就是利用棧來實行的,所以遞迴的題都能用棧來做;p;}
return root;}}
其實,遞迴的底層就是利用棧來實行的,所以遞迴的題都能用棧來做;
映象二叉樹
映象二叉樹與二叉樹的區別是左右孩子對於根節點的相對大小剛好相反不用建立映象樹,通過對原樹的映象便歷,即可得到所需的東西。後序 樹 lr根,映象 rl根。如果創立映象二叉樹,insert 改一下即可,這樣可以把preordermirror 等去掉。對於遍歷後的排序放到vector陣列裡便於比較,而且進...
映象二叉樹
題目描述 操作給定的二叉樹,將其變換為源二叉樹的映象。思路 1 獲取源二叉樹的映象,將源二叉樹的左右子樹交換即可 2 主要步驟 若二叉樹為空,直接返回 若二叉樹不為空,交換其左右子樹 遞迴的將二叉樹的其他結點進行交換 public class treenode public class soluti...
二叉樹12 二叉樹的映象
題目 操作給定的二叉樹,將其變換為源二叉樹的映象。輸入描述 思路 首先要理解業務邏輯,何為映象?所謂映象就是對於任何乙個結點,將其左右子樹進行交換即可。對於一棵以root為根結點的二叉樹,要將其映象,首先將其左右子樹 root.left為根的子樹 和 root.right為根的子樹 進行映象,然後將...