二叉樹的深度

2021-10-03 23:05:25 字數 982 閱讀 5738

題目描述

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

思路:1.遞迴

樹的高度想到乙個公式:

hn+1 = hn + 1

hn = hn-1 + 1

hn-1 = hn-2 + 1

…那麼這就是乙個遞迴問題

返回值就是左右子樹高度的最大值+1

/*

struct treenode

};*/

class

solution

int left =

treedepth

(proot-

>left)

;int right =

treedepth

(proot-

>right)

;return

(left > right)

?(left+1)

:(right+1)

;}};

2.層次遍歷

樹的高度也可以聯想到層次遍歷,有幾層就有多高

借用佇列

/*

struct treenode

};*/

class

solution

int high =0;

q.push

(proot)

;while

(!q.

empty()

)if(top-

>right !=

null

) q.

pop();

}

high++

;//這層遍歷完,高度++

}return high;}}

;

二叉樹的深度 二叉樹的深度

題目描述輸入一棵二叉樹,求該樹的深度。從根結點到葉結點依次經過的結點 含根 葉結點 形成樹的一條路徑,最長路徑的長度為樹的深度。及測試用例 單步除錯檢視過程 public class solution19 拿到左子樹的最大深度 int leftdep treedepth root.left 拿到右子...

二叉樹的深度 二叉樹的深度 二叉樹最大寬度

題目 輸入一棵二叉樹的根節點,求該樹的深度。從根節點到葉節點依次經過的節點 含根 葉節點 形成樹的一條路徑,最長路徑的長度為樹的深度。例如 給定二叉樹 3,9,20,null,null,15,7 返回它的最大深度 3 根節點加上左右子樹的最大深度就是樹的最大深度。如下 class solution ...

二叉樹之 二叉樹深度

二叉樹深度 獲取最大深度 public static int getmaxdepth treenode root 二叉樹寬度 使用佇列,層次遍歷二叉樹。在上一層遍歷完成後,下一層的所有節點已經放到佇列中,此時佇列中的元素個數就是下一層的寬度。以此類推,依次遍歷下一層即可求出二叉樹的最大寬度 獲取最大...