美文网首页
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