美文网首页
leetcode:111. Minimum Depth of B

leetcode:111. Minimum Depth of B

作者: 唐僧取经 | 来源:发表于2018-09-21 09:05 被阅读0次

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

}

相关文章

网友评论

      本文标题:leetcode:111. Minimum Depth of B

      本文链接:https://www.haomeiwen.com/subject/lftanftx.html