劍指Offer之二叉樹的映象

2021-08-31 04:02:32 字數 827 閱讀 8590

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

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

8/ \

6 10

/ \ / \

5 7 9 11

映象二叉樹

8/ \

10 6

/ \ / \

11 9 7 5

解題思路,遞迴遍歷樹,將樹的左右孩子交換即可。

public class 二叉樹的映象 

treenode my = switchnode(root);

system.out.println(my.val);

}//定義交換函式

public static treenode switchnode(treenode treenode)

//交換左右孩子

treenode left = treenode.left;

treenode right = treenode.right;

treenode.right = left;

treenode.left = right;

//判斷左右孩子是不是為空,不為空,將左右孩子的孩子交換

if (treenode.right!=null)

//這兒不能使用else if,使用else if當上乙個if為true時候,就不會執行了!!!注意

if (treenode.left!=null)

return treenode;

}public static void main(string args)

}

堅持寫**,相信總會提高的!

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