操作給定的二叉樹,將其變換為源二叉樹的映象。
思路:遞迴的交換左右子樹。不是交換結點的數值,直接交換結點。
# -*- 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
# python可以直接交換
root.right,root.left = root.left,root.right
# 子樹不為空,接著交換子樹
if root.right:
self.mirror(root.right)
if root.left:
self.mirror(root.left)
劍指Offer刷題筆記 二叉樹的深度
輸入一棵二叉樹,求該樹的深度。從根結點到葉結點依次經過的結點 含根 葉結點 形成樹的一條路徑,最長路徑的長度為樹的深度。就是深度搜尋,找到最大深度。coding utf 8 class treenode def init self,x self.val x self.left none self.r...
劍指Offer 刷題 重建二叉樹
definition for binary tree public class treenode public class solution int val pre prel 前序遍歷序列中的第乙個數即為根節點 treenode tree newtreenode val int mid 0 找到根節...
劍指Offer刷題筆記 從上往下列印二叉樹
從上往下列印出二叉樹的每個節點,同層節點從左至右列印。其實這就是廣度搜尋。與廣度搜尋對應的是深度搜尋,所謂深度搜尋就是前序遍歷,除了常見的遞迴實現之外,還可以利用棧來實現 利用棧,先將根入棧,再將根出棧,並將根的右子樹,左子樹存入棧,按照棧的先進後出規則來實現深度優先遍歷。深度優先搜尋不能用都佇列來...