劍指Offer 二叉樹的映象

2021-09-27 22:22:15 字數 746 閱讀 7078

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

二叉樹的映象定義:

源二叉樹

8/  \

6   10

/ \   / \

5  7  9 11

映象二叉樹

8/  \

10   6

/ \  / \

11 9  7  5

從二叉樹的根節點開始往下遍歷,遇到當前節點的左右子樹至少有乙個不為空的情況,交換左右子樹。

/*

struct treenode

};*/

class

solution

// 左右子節點都為空

if(proot-

>left ==

nullptr

&& proot-

>right ==

nullptr

)// 左右子節點至少乙個不為空,交換

treenode *tmp = proot-

>left;

proot-

>left = proot-

>right;

proot-

>right = tmp;

// 左遞迴

if(proot-

>left)

// 右遞迴

if(proot-

>right)}}

;

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