題目描述
操作給定的二叉樹,將其變換為源二叉樹的映象。
二叉樹的映象定義:源二叉樹
8/ \
6 10
/\ /\
5 7 9 11
映象二叉樹
8/ \
10 6
/\ /\
11 9 7 5
解:class solution:
# 返回映象樹的根節點
def mirror(self, root):
# write code here
if root:
root.left,root.right=root.right,root.left
self.mirror(root.right)
self.mirror(root.left)
總結:1.採用遞迴的方法,進行映象反轉
2.首先依然還是一步一步的查詢當前節點的左孩子,右孩子。然後進行交換。
3.然後對孩子節點的左右孩子進行反轉,這裡誰先誰後,其實最後的答案並沒有區別。
牛客刷題之二叉樹的映象
操作給定的二叉樹,將其變換為源二叉樹的映象 二叉樹的映象定義 源二叉樹 8 6 10 5 7 9 11 映象二叉樹 8 10 6 11 9 7 5解題思路 首先前序遍歷這棵樹的每個結點,如果遍歷到的結點有子結點,就交換它的兩個子結點。當交換完所有的非葉子結點的左右子結點之後,就得到了樹的映象。pub...
牛客刷題二叉樹之對稱二叉樹
請實現乙個函式,用來判斷一棵二叉樹是不是對稱的。注意,如果乙個二叉樹同此二叉樹的映象是同樣的,定義其為對稱的。用兩種方式,遞迴和非遞迴 一 遞迴方式 struct treenode class solution bool issymmetricalcore treenode left,treenod...
牛客網刷題 二叉樹的最大深度
求給定二叉樹的最大深度,最大深度是指樹的根結點到最遠葉子結點的最長路徑上結點的數量。輸入 給定的二叉樹是,輸出 3深度優先搜尋 ps 使用遞迴 二叉樹的最大深度可以通過深度優先搜尋遍歷的方式去計算。遞迴的解析 終止條件 當 root 為空,說明已越過葉節點,因此返回 深度 0 遞推工作 本質上是對樹...