111. Minimum Depth of Binary Tree
Description
Given a binary tree, find its minimum depth.
The minimum depth is the number of nodes along the shortest path from the root node down to the nearest leaf node.
Note: A leaf is a node with no children.
Example:
Given binary tree [3,9,20,null,null,15,7],
3
/
9 20
/
15 7
return its minimum depth = 2.
Answer
func minDepth(root *TreeNode) int {
if root == nil {
return 0
}
stack := []*TreeNode{root}
depth := 1
temp := root
last := root
flag := root
for len(stack) > 0 {
temp = stack[0]
if temp.Left == nil && temp.Right == nil {
return depth
}
if temp.Left != nil {
stack = append(stack, temp.Left)
last = temp.Left
}
if temp.Right != nil {
stack = append(stack, temp.Right)
last = temp.Right
}
if temp == flag {
flag = last
depth++
}
stack = stack[1:]
}
return depth
}
网友评论