劍指Offer 18 二叉樹的映象

2021-10-06 17:41:06 字數 609 閱讀 3651

請完成乙個函式,輸入乙個二叉樹,該函式輸出它的映象

先在樹中交換根節點的兩個子結點,之後需要交換著兩個結點的左右子結點。先前序遍歷這棵樹的每個結點,如果遍歷到的結點有子結點,就交換它的兩個子結點。當交換完所有非葉子結點的左右子結點之後,就得到了樹的映象。

-*- coding:utf-8 -*-

# class treenode:

# def __init__(self, x):

# self.val = x

# self.left = none

# self.right = none

class solution:

# 返回映象樹的根節點

def mirror(self, root):

# write code here

if not root:

return

temp = root.left

root.left = self.mirror(root.right)

root.right = self.mirror(temp)

return root

劍指Offer 18 二叉樹的映象

操作給定的二叉樹,將其變換為源二叉樹的映象。思路 這道題用遞迴做最合適不過,其思路很簡單,既然是遞迴那函式的開始一定有跳出遞迴的條件,條件就是當遍歷到樹節點為空時,就跳出遞迴。剩下的就是交換根節點左右子節點了,在交換完畢之後要進入到子節點的子樹中對子樹再進行左右節點的交換,如此迴圈下去,如下 sol...

劍指offer18 二叉樹的映象

操作給定的二叉樹,將其變換為源二叉樹的映象。二叉樹的映象定義 源二叉樹 8 6 10 5 7 9 11 映象二叉樹 8 10 6 11 9 7 5二叉樹 遞迴python is none 和 none self引數 coding utf 8 class treenode def init self,...

劍指Offer 18 二叉樹的映象

題目描述 操作給定的二叉樹,將其變換為原二叉樹的映象。解題思路 求一棵樹的映象的過程 先前序遍歷這棵樹的每個結點,如果遍歷到的結點有子結點,就交換它的兩個子結點。當交換完所有的非葉結點的左 右子結點後,就可以得到該樹的映象。如下面的例子,先交換根節點的兩個子結點之後,我們注意到值為10 6的結點的子...