給定乙個二叉樹,找出其最小深度。
二叉樹的最小深度為根節點到最近葉子節點的最短路徑上的節點數量。
樣例 1:python:樣例 2:輸入: {}
輸出: 0
樣例 3:輸入:
輸出: 3
解釋: 1\ 2
/ 3
它將被序列化為
輸入:
輸出: 2
解釋:
1/ \
2 3
/ \4 5
它將被序列化為
"""
definition of treenode:
class treenode:
def __init__(self, val):
self.val = val
self.left, self.right = none, none
"""class solution:
"""@param root: the root of binary tree
@return: an integer
"""def mindepth(self, root):
# write your code here
if root == none:
return 0
else:
lnum = self.mindepth(root.left)
rnum = self.mindepth(root.right)
if root.left == none or root.right == none:
if root.left == root.right:
return 1
elif root.left != none:
return lnum+1
else:
return rnum+1
else:
return min(lnum, rnum)+1
c++:
/**
* definition of treenode:
* class treenode
* }*/class solution elseelse if(root->left != null)
else
}else}}
};
lintcode練習 155 二叉樹的最小深度
二叉樹的最小深度為根節點到最近葉子節點的距離。是樣例 給出一棵如下的二叉樹 2 3 4 5 這個二叉樹的最小深度為 2 解題思路 利用了二叉樹的層次遍歷的思想,在每一層的遍歷中都判斷一下是否有葉子結點,如果有葉子結點,則返回該層深度。definition of treenode class tree...
LintCode 二叉樹的最小深度
題目描述 給定乙個二叉樹,找出其最小深度。二叉樹的最小深度為根節點到最近葉子節點的距離。樣例 給出一棵如下的二叉樹 1 2 3 4 5 這個二叉樹的最小深度為 2 做題思路 如果根結點為空,返回0,若左子樹為空,就用遞迴函式遍歷右子樹並加1,返回記錄深度,如果右子樹為空,就遍歷左子樹,遞迴返回記錄深...
lintcode 二叉樹的最小深度
1.題目 給定乙個二叉樹,找出其最小深度。二叉樹的最小深度為根節點到最近葉子節點的距離。樣例 給出一棵如下的二叉樹 1 2 3 4 5 這個二叉樹的最小深度為 2 2.思路 先考慮空樹,返回0 考慮是否為左右斜樹,則直接遞迴求深度即可 考慮非空樹時,遞迴,在回溯過程中不斷比較左右子樹深度,每次取較小...