劍指Offer 二叉樹的映象

2021-10-03 12:43:41 字數 769 閱讀 2076

操作給定的二叉樹,將其變換為源二叉樹的映象。

樣例

輸入樹:

8/ \ 6

10/ \ / \

57911

[8,6

,10,5

,7,9

,11,null

,null

,null

,null

,null

,null

,null

,null

] 輸出樹:

8/ \ 10

6/ \ / \

1197

5[8,

10,6,

11,9,

7,5,

null

,null

,null

,null

,null

,null

,null

,null

]

我們發現映象後的樹就是將原樹的所有節點的左右兒子互換,所以我們在遞迴遍歷原樹的所有節點,將每個節點的左右兒子互換即可。

時空分析

時間複雜度分析: 原樹僅被遍歷一次,所以時間複雜度是o(n)

c++**

/**

* definition for a binary tree node.

* struct treenode

* };

*/class

solution

};

劍指offer 二叉樹映象

操作給定的二叉樹,將其變換為源二叉樹的映象。二叉樹的映象定義 源二叉樹 8 6 10 5 7 9 11 映象二叉樹 8 10 6 11 9 7 5 這道題目就是交換樹的左右節點之後,遞迴呼叫。不遞迴的方法我覺得可以考慮使用層次遍歷那樣的佇列式方法,不過太麻煩了吧。coding utf 8 class...

劍指offer 二叉樹映象

操作給定的二叉樹,將其變換為源二叉樹的映象。二叉樹的映象定義 源二叉樹 8 6 10 5 7 9 11 映象二叉樹 8 10 6 11 9 7 5交換左右節點,遍歷左節點,右節點,求映象 class treenode def init self,item self.val item self.lef...

劍指offer 二叉樹映象

操作給定的二叉樹,將其變換為源二叉樹的映象。遞迴判斷是否為空 不為空交換左右子樹 左子樹呼叫 右子樹呼叫。兩種寫法 coding utf 8 class treenode def init self,x self.val x self.left none self.right none class ...