美文网首页
[go语言算法获取树的深度]

[go语言算法获取树的深度]

作者: Ucan先生 | 来源:发表于2020-07-28 17:42 被阅读0次

递归写法

/**
 * Definition for a binary tree node.
 * type TreeNode struct {
 *     Val int
 *     Left *TreeNode
 *     Right *TreeNode
 * }
 */
func maxDepth(root *TreeNode) int {
     if root==nil{
         return 0
     }
     if root.Left == nil && root.Right == nil {
         return 1
     }
     leftDepth := maxDepth(root.Left)
     rightDepth := maxDepth(root.Right)
     if leftDepth > rightDepth{
         return leftDepth+1
     }else{
         return rightDepth+1
     }
}

非递归写法

BFS tmpList用作示意

/**
 * Definition for a binary tree node.
 * type TreeNode struct {
 *     Val int
 *     Left *TreeNode
 *     Right *TreeNode
 * }
 */
func maxDepth(root *TreeNode) int {
    if root == nil{
        return 0
    }
    quene := []*TreeNode{}
    tmpList := []*TreeNode{}
    tmpList = append(tmpList,root)
    depth := 0
    for len(quene) > 0 || len(tmpList) >0 {
        //队列为空当前层入队
        if len(quene) == 0{
            quene = append(quene,tmpList...)
            depth++
            tmpList = []*TreeNode{}
            continue
        }else{
            //队列不为空则出队
        node := quene[0]
        if node.Left!=nil{
            tmpList = append(tmpList,node.Left)
        }
        if node.Right!=nil{
            tmpList = append(tmpList,node.Right)
        }
        if len(quene) > 0 {
            quene = quene[1:]
        }
    }
}
    return depth
}

相关文章

  • [go语言算法获取树的深度]

    递归写法 非递归写法 BFS tmpList用作示意

  • Go语言数据结构和算法-BinarySearchTree(二叉搜

    Go语言数据结构和算法-BinarySearchTree(二叉搜索树) 二叉搜索树的数据结构 Insert(val...

  • 2019-07-22 周学习计划

    1.K近邻算法;决策树算法;朴素贝叶斯算法; 2.10小节屈婉玲算法课; 3.Go语言编程(许式伟) Channe...

  • 2019-07-15 周学习计划

    1.K近邻算法;决策树算法;朴素贝叶斯算法; 2.10小节屈婉玲算法课; 3.Go语言编程(许式伟) Channe...

  • 2019-07-03 周学习计划

    计划: 1.K近邻算法;决策树算法; 2.屈婉玲算法课6小节; 3.Go语言编程(许式伟) Channel看完; ...

  • 2019-08-05 周学习计划

    1.决策树算法;朴素贝叶斯算法; 2.10小节屈婉玲算法课; 3.Go语言编程(许式伟) Channel看完; 4...

  • 2019-07-29 周学习计划

    1.决策树算法;朴素贝叶斯算法; 2.10小节屈婉玲算法课; 3.Go语言编程(许式伟) Channel看完; 4...

  • 2019-07-08 周学习计划

    1.K近邻算法剩余部分;决策树算法;朴素贝叶斯算法; 2.10小节屈婉玲算法课; 3.Go语言编程(许式伟) Ch...

  • Go 语言极速入门

    本系列文章主要是记录《Go 语言实战》和《Google 资深工程师深度讲解 Go 语言》的学习笔记。 Go 语言极...

  • Google资深工程师深度讲解Go语言

    第1章 课程介绍 欢迎大家来到深度讲解Go语言的课堂。本课程将从基本语法讲起,逐渐深入,帮助同学深度理解Go语言面...

网友评论

      本文标题:[go语言算法获取树的深度]

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