劍指offer19 二叉樹的深度

2021-08-21 16:13:21 字數 626 閱讀 3847

題目描述:

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

解題思路:

做深度優先搜尋,找出最大路徑長度

# -*- 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 proot == none:

return 0

if proot.left == none and proot.right == none:

return 1

depth = 1 + max(self.treedepth(proot.left), self.treedepth(proot.right))

return depth

劍指offer 19 二叉樹的映象

先序遍歷樹的每個結點,若遍歷到的結點有子節點,則交換它的兩個結點。遞迴方式 如果proot為null,則為空樹,返回 如果proot不為null,交換proot左右結點,然後分別求左右子樹的映象 非遞迴方式 步驟描述 借助棧 首先,將根節點proot入棧 第一步 當佇列未空時執行第二步 第二步 出棧...

劍指offer 19 二叉樹的映象

二叉樹的映象 映象即就是在鏡子中所成的像 實現 ps 搜尋二叉樹和普通二叉樹實現方法是相同的,只是兩種建樹過程有所不同,此處實現的是搜尋二叉樹。1.遞迴實現 pragma once include include include using namespace std template struct...

面試題 劍指offer19 二叉樹的映象

二叉樹的映象就是要將左子樹調整到右子樹的地方 將右子樹的位置調整到左子樹的位置 首先先序遍歷這個數的每個節點,如果遍歷到節點有子節點 就交換它的兩個子結點,當交換完所有非結點之後,就得到了樹的映象 的實現 includeusing namespace std struct binarytreenod...