二叉樹最大 最小深度

2021-06-21 15:31:21 字數 739 閱讀 8831

二叉樹求最大,最小深度是二叉樹很基本的問題,基本上就是簡單的遞迴問題!

首先明確一下二叉樹深度的定義:從根節點到葉子節點的深度

二叉樹的節點無外乎三種狀態:

1.左右子樹皆存在

2.為葉子節點,左右子樹皆為null

3.另外一種就是乙個子樹為null,另乙個非空。

二叉樹其實就是遞迴遍歷的思想,首先想遞迴結束的條件,大部分時間都是葉子節點(此時下一級左右子樹為null)

此時遞迴函式應該怎麼做,return 0 (or else);另外當二叉樹為空樹時間,返回值應該為多少;

然後開始設計演算法,並手動執行一下看是否可行。

比如最小子樹,乙個子樹為空,另乙個非空,就需要考慮

最小深度:

當節點為null時間,return 0;

當節點乙個子樹為空,乙個非空時間,非空的那邊子樹不用參與比較(直接置為最大in),

當左右皆存在,就很明顯,求min+1

/**

* definition for binary tree

* public class treenode

* }*/public class solution

} private int minrec(treenode root)

else if(root.right == null)

else

}}

二叉樹最大深度和最小深度

給定乙個二叉樹,找出其最大深度。二叉樹的深度為根節點到最遠葉子節點的距離。如果二叉樹為空,則深度為0 如果不為空,分別求左子樹的深度和右子樹的深度,去最大的再加1,因為根節點深度是1,要加進去。int maxdepth treenode root 給定乙個二叉樹,找出其最小深度。二叉樹的最小深度為根...

二叉樹 最大深度和最小深度

leetcode 二叉樹的最大深度 leetcode 二叉樹的最小深度 我們知道完全二叉樹,是可以根據節點數量進行計算出深度的,但是非完成二叉樹呢 他就不滿足了,樹結構體 public class treenode 二叉樹的深度為根節點到最遠葉子節點的最長路徑上的節點數。說明 葉子節點是指沒有子節點...

二叉樹深度(最大和最小)

最大深度 definition for a binary tree node.struct treenode int maxdepth struct treenode root 二叉樹類的問題都會考慮採用遞迴的方式進行求解,因為二叉樹本身就是遞迴定義的。最小深度int mindepth treeno...