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