1. 程式人生 > >二叉樹的深度[劍指offer]之python實現

二叉樹的深度[劍指offer]之python實現

題目描述

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

題目連結

-*- coding:utf-8 -*-
# class TreeNode:
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = None

class Solution:
    def TreeDepth(self , pRoot):
        if pRoot == None:
            return
0; lDepth = Solution.TreeDepth(self , pRoot.left); rDepth = Solution.TreeDepth(self , pRoot.right); return max(lDepth , rDepth) + 1

相關推薦

深度[offer]python實現

題目描述 輸入一棵二叉樹,求該樹的深度。從根結點到葉結點依次經過的結點(含根、葉結點)形成樹的一條路徑,最長路徑的長度為樹的深度。 題目連結 -*- coding:utf-8 -*- # clas

的映象[offer]python實現

題目描述 操作給定的二叉樹,將其變換為源二叉樹的映象。 輸入描述: 二叉樹的映象定義:源二叉樹 8 / \ 6 1

平衡[offer]python實現

題目描述 輸入一棵二叉樹,判斷該二叉樹是否是平衡二叉樹。 題目連結 # -*- coding:utf-8 -*- # class TreeNode: # def __init__(self

C++ 前序遍歷和中序遍歷重構offer

題目描述 輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建出該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重複的數字。例如輸入前序遍歷序列{1,2,4,7,3,5,6,8}和中序遍歷序列{4,7,2,1,5,3,8,6},則重建二叉樹並返回。 這道題之前做過幾次,以前

重建offer第六題)

題目:輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建出該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重複的數字。例如輸入前序遍歷序列{1,2,4,7,3,5,6,8}和中序遍歷序列{4,7,2,1,5,3,8,6},則重建二叉樹並返回。 有思路,但是沒寫出來。還得多練練。 解釋一下大神的幾個關鍵

對稱的offer+鏡面對稱+遞迴)

對稱的二叉樹 參與人數:904時間限制:1秒空間限制:32768K通過比例:28.19%最佳記錄:0 ms|8552K 題目描述 請實現一個函式,用來判斷一顆二叉樹是不是對稱的。注意,如果

反轉連結串列[offer]python實現

題目描述 輸入一個連結串列,反轉連結串列後,輸出連結串列的所有元素。 題目連結 # -*- coding:utf-8 -*- # class ListNode: # def __init

offer-10-Python實現(二進位制中1的個數)

題目內容: 解答思路: 把一個整數減去1,再和原來的整數做位與運算,會把該整數最右邊一個1變成0.也就是說,一個整數的二進位制有多少個1,就可以完成多少次這樣的操作。 可以寫出程式碼: def func(n): cnt = 0 w

offer-9-Python實現斐波那契(Fibonacci)數列

題目內容: 數列為:1,1,2,3,5,8… 解法一:遞迴方法 def JumpFloor(n): if(n==0):return 0 elif(n==1):return 1 elif(n==2):return 1

offer-8- Python實現旋轉陣列的最小數

一、題目描述 二、解法 def minNumberInRotateArray(rotateArray): # write code here p1 = 0 p2 = len(rotateArray)-1 mid = p1

offer深度

1.題目描述 輸入一棵二叉樹,求該樹的深度。從根結點到葉結點依次經過的結點(含根、葉結點)形成樹的一條路徑,最長路徑的長度為樹的深度。 2.問題分析 方法一: 可以使用遞迴的方法,分別求左子樹和右子樹的深度,則樹的深度是:更大者 + 1。這是一個遞迴的方法。

offer深度(非遞迴的層次遍歷)Java實現

劍指offer上一道比較基礎的題目,但這個解法不僅可以求二叉樹的深度同時可以求二叉樹的最大層數,某一層的某一個節點 是一種比較通用的方法! 先建立資料模型 package Binary_tree; public class Node {//二叉樹節點 priva

offer【從上往下打印

emp pub push coder 二叉 spa cti public ott 題目:   從上往下打印二叉樹 鏈接:   https://www.nowcoder.com/practice/7fe2212963db4790b57431d9ed259701?tpId=13

offer 鏡像

tno eno 描述 temp 結點 輸出 urn tree 定義 package Problem19; /* * 問題描述: * 請完成一個函數,輸入一個二叉樹,該函數輸出它的鏡像; */ //定義二叉樹的結構 class BinaryTreeNode {

offer 從上往下打印

節點 result ava null val imp tree solution 當前 import java.util.ArrayList; import java.util.LinkedList; /** public class TreeNode { int

offer平衡

1.題目描述 輸入一棵二叉樹,判斷該二叉樹是否是平衡二叉樹。 2.問題分析 什麼是平衡二叉樹?平衡二叉搜尋樹(Self-balancing binary searchtree)又被稱為AVL樹(有別於AVL演算法),且具有以下性質:它是一 棵空樹或它的左右兩個子樹的高度差

【Java】 offer(55-1) 深度Offer》Java實現合集 《Offer》Java實現合集

  本文參考自《劍指offer》一書,程式碼採用Java語言。 更多:《劍指Offer》Java實現合集   題目   輸入一棵二叉樹的根結點,求該樹的深度。從根結點到葉結點依次經過的/結點(含根、葉結點)形成樹的一條路徑,最長路徑的長度為樹的深度。 思路   簡潔理

Offer從上往下列印

題目描述 從上往下打印出二叉樹的每個節點,同層節點從左至右列印。 解題思路 二叉樹的層次遍歷,水題。。。有一個坑:如果root是空的,直接返回空vector,一定要注意邊界條件!!!!!!!!! AC程

offer-------字列印

題目: 思路: 程式碼: struct TreeNode { int val; TreeNode *left; TreeNode *right; } void Print(BinaryTreeNOde* pRoot) { if(pRoot ==

offer的下一個結點

1.題目描述 給定一個二叉樹和其中的一個結點,請找出中序遍歷順序的下一個結點並且返回。注意,樹中的結點不僅包含左右子結點,同時包含指向父結點的指標。 2.問題分析 3.原始碼 // 例如: 1 // 2 3 // 4 6 7 /