劍指offer 二叉樹的映象

2021-10-01 11:07:55 字數 650 閱讀 9160

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

輸入描述:

二叉樹的映象定義:源二叉樹

8 

6 10

/ \ / \

5 7 9 11

映象二叉樹

8/ \

10 6

/ \ / \

11 9 7 5

**思路:**首先,大問題可以分為小問題。如果根節點的左右子樹不是都空時候,根節點映象是將左邊子樹和右邊子樹交換,然後再依次對兩邊子樹的子樹進行調換。重點在於:(終止條件)當乙個節點的左右節點都為空的時候!返回。

**例項:

1,遞迴版本:

void

mirror

(treenode *proot)

return

;}

注意:在遍歷時候,只有有一邊節點不為空。都要換!因為空姐點也可以換過去!

【非遞迴版本】

treenode*

inverttree

(treenode* root)

}return root;

}

劍指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 ...