題目描述:
輸入一棵二叉樹,求該樹的深度。從根結點到葉結點依次經過的結點(含根、葉結點)形成樹的一條路徑,最長路徑的長度為樹的深度。
解題思路:
做深度優先搜尋,找出最大路徑長度
# -*- 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...