操作給定的二叉樹,將其變換為源二叉樹的映象。
二叉樹的映象定義:源二叉樹
8
/ \
6 10
/ \ / \
5 7 9 11
映象二叉樹
8/ \
10 6
/ \ / \
11 9 7 5
#定義數節點結構
class treenode:
def __init__(self, x):
self.val = x
self.left = none
self.right = none
class solution:
# 返回映象樹的根節點
def mirror(self, root):
if root == none:
return none
#互換左右孩子的值
root.right,root.left=root.left,root.right
#遞迴處理左子樹
self.mirror(root.right)
#遞迴處理右子樹
self.mirror(root.left)
對於映象的定義以及**我們可以很清楚的明白,就是調換左右孩子的值。
那麼第一步先判斷根節點是否為空,然後進行調換根節點的左右孩子的值,然後進行遞迴處理左右子樹。當處理的節點為空以後就不在進行處理,退出遞迴操作。
映象二叉樹(遞迴版)
題目 給定乙個二叉樹,檢查它是否是映象對稱的。分析 這道題我的第一反應又是遞迴,果然是對遞迴愛的深沉,看見二叉樹就想到遞迴。不過,雖然用遞迴來解沒什麼問題,但是我的思路有大問題,導致 並不簡潔,消耗記憶體和執行時間也比較高。我的思路是既然要判斷二叉樹是否為映象對稱,那麼頂層的第乙個節點可以忽略不計,...
映象二叉樹
映象二叉樹與二叉樹的區別是左右孩子對於根節點的相對大小剛好相反不用建立映象樹,通過對原樹的映象便歷,即可得到所需的東西。後序 樹 lr根,映象 rl根。如果創立映象二叉樹,insert 改一下即可,這樣可以把preordermirror 等去掉。對於遍歷後的排序放到vector陣列裡便於比較,而且進...
映象二叉樹
題目描述 操作給定的二叉樹,將其變換為源二叉樹的映象。思路 1 獲取源二叉樹的映象,將源二叉樹的左右子樹交換即可 2 主要步驟 若二叉樹為空,直接返回 若二叉樹不為空,交換其左右子樹 遞迴的將二叉樹的其他結點進行交換 public class treenode public class soluti...