劍指Offer刷題筆記 二叉樹的深度

2021-09-26 00:05:06 字數 595 閱讀 9590

輸入一棵二叉樹,求該樹的深度。從根結點到葉結點依次經過的結點(含根、葉結點)形成樹的一條路徑,最長路徑的長度為樹的深度。

就是深度搜尋,找到最大深度。

# -*- 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刷題筆記 從上往下列印二叉樹

從上往下列印出二叉樹的每個節點,同層節點從左至右列印。其實這就是廣度搜尋。與廣度搜尋對應的是深度搜尋,所謂深度搜尋就是前序遍歷,除了常見的遞迴實現之外,還可以利用棧來實現 利用棧,先將根入棧,再將根出棧,並將根的右子樹,左子樹存入棧,按照棧的先進後出規則來實現深度優先遍歷。深度優先搜尋不能用都佇列來...