劍指Offer55 1 二叉樹的深度Golang版

2021-10-22 07:24:57 字數 1141 閱讀 3061

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

例如:

給定二叉樹 [3,9,20,null,null,15,7],3/

9 20

/ 15 7

返回它的最大深度 3 。

節點總數 <= 10000

遞迴出口: 如果root為空,返回0

遞迴關係:max(height(root.left)+1, height(root.right)+1)層序遍歷一般借助佇列來實現

按照從左到右,從上到下的方式把樹上的元素放到佇列中

按照每一層進行遍歷,把每一層的資料遍歷完後,res++

/**

* definition for a binary tree node.

* type treenode struct

*/func

maxdepth

(root *treenode)

int leftdepth :=

maxdepth

(root.left)+1

rightdepth :=

maxdepth

(root.right)+1

max := leftdepth

if rightdepth > max

return max

}

/**

* definition for a binary tree node.

* type treenode struct

*/func

maxdepth

(root *treenode)

int queue :=

*treenode

forlen

(queue)

>

0if queue[0]

.right !=

nil queue = queue[1:

] length--

} res++

}return res

}

劍指offer 面試題55(1) 二叉樹的深度

輸入一棵二叉樹,求該樹的深度。從根結點到葉結點依次經過的結點 含根 葉結點 形成樹的一條路徑,最長路徑的長度為樹的深度。遞迴去找,返回左右子樹中較大的值 題目 輸入一棵二叉樹,求該樹的深度。從根結點到葉結點依次經過的結點 含根 葉結點 形成樹的一條路徑,最長路徑的長度為樹的深度。思路 遞迴去找,返回...

劍指offer 二叉樹 二叉樹搜尋樹

package bst import j a.util.public class bst if pre.length 0 in.length 0 treenode root new treenode pre 0 for int i 0 i in.length i return root 判斷給定陣列...

劍指offer 二叉樹 二叉樹的映象

操作給定的二叉樹,將其變換為源二叉樹的映象。二叉樹的映象定義 源二叉樹 8 6 10 5 7 9 11 映象二叉樹 8 10 6 11 9 7 51,交換左右子樹 2,遞迴交換左右子樹的左右子節點 package offertest title mirror description author 田...