111 二叉樹的最小深度

2021-10-07 06:45:11 字數 3081 閱讀 1892

111. 二叉樹的最小深度

演算法:分治/動態規劃/dfs

實現方式:自底向上/遞迴

/**

* definition for a binary tree node.

* public class treenode

* }*/class

solution

if(root.right == null && root.left == null)

if(root.left == null)

if(root.right == null)

// 狀態轉移方程

// / dp[右孩子] + 1 ,左孩子為null

// dp[非葉子] = dp[左孩子] + 1 ,右孩子為null

// \ min(dp[左孩子], dp[右孩子]) + 1 ,左右孩子都不為null

// depth:走過的路

// root:當前狀態[dp陣列中的為]

private

inthelper

(treenode root,

int depth)

if(root.right == null && root.left == null)

// 由狀態變數得出選擇列表

// 該層呼叫返回,相當於回溯,因為上層的depth比該層小1

// 是葉子節點

111 二叉樹的最小深度

給定乙個二叉樹,找出其最小深度。最小深度是從根節點到最近葉節點的最短路徑的節點數量。解題思路 這題我想了很久。大概還是對遞迴不太熟悉吧。下面講解一下遞迴的思路 1.如果根節點是null,說明沒有深度。2.如果節點的左右兒子都不存在,說明只有自己,節點深度為1.3.如果節點沒有左兒子,但是有右兒子怎麼...

111 二叉樹的最小深度( )

給定乙個二叉樹,找出其最小深度。最小深度是從根節點到最近葉子節點的最短路徑上的節點數量。說明 葉子節點是指沒有子節點的節點。示例 給定二叉樹 3,9,20,null,null,15,7 3 920 157返回它的最小深度 2.注意 它是到最近的葉子節點,要多考慮根節點 class solution ...

111 二叉樹的最小深度

給定乙個二叉樹,找出其最小深度。最小深度是從根節點到最近葉子節點的最短路徑上的節點數量。說明 葉子節點是指沒有子節點的節點。示例 給定二叉樹 3,9,20,null,null,15,7 3 9 20 15 7返回它的最小深度 2.思路 求樹深用dfs,遞迴遍歷左子樹右子樹,取最小的深度。defini...