Swift 求二叉樹最小深度
給定一個二叉樹,找出其最小深度。
最小深度是從根節點到最近葉子節點的最短路徑上的節點數量。
說明: 葉子節點是指沒有子節點的節點。
示例:
給定二叉樹 [3,9,20,null,null,15,7]
,返回它的最小深度 2.
我們用遞迴方法求,求法和求最大深度類似,比較一個節點的左右子節點,如果都不為空的話,取最小的子節點長度,如果一個子節點為空,則最小深度就是另一個子節點到根節點的長度。
程式碼如下:
/**
* Definition for a binary tree node.
* public class TreeNode {
* public var val: Int
* public var left: TreeNode?
* public var right: TreeNode?
* public init(_ val: Int) {
* self.val = val
* self.left = nil
* self.right = nil
* }
* }
*/
class Solution{
func minDepth(_root:TreeNode?)->Int{
if root == nil {
return 0
}
if root?.left==nil{
return minDepth(root?.right)+1
}else if root?.right==nil{
return minDepth(root?.left)+1
}else{
return min(minDepth(root?.left),minDepth(root?.right))+1
}
}
}