golang力扣leetcode 102. 二叉树的层序遍历

简介: golang力扣leetcode 102. 二叉树的层序遍历

题解

简单的队列,比较考验语法熟练度而已。。

注意27行那里有个坑,应该是queue[0],而不是queue[i],因为每次都出队了,下一个索引位置肯定还是0

代码

package main
func main() {
}
type TreeNode struct {
  Val   int
  Left  *TreeNode
  Right *TreeNode
}
func levelOrder(root *TreeNode) [][]int {
  if root == nil {
    return nil
  }
  result := make([][]int, 0)
  queue := make([]*TreeNode, 0)
  queue = append(queue, root)
  for len(queue) > 0 {
    cnt := make([]int, 0)
    queueSize := len(queue)
    for i := 0; i < queueSize; i++ {
      //出队
      v := queue[0]
      queue = queue[1:]
      //入队
      if v.Left != nil {
        queue = append(queue, v.Left)
      }
      if v.Right != nil {
        queue = append(queue, v.Right)
      }
      cnt = append(cnt, v.Val)
    }
    result = append(result, cnt)
  }
  return result
}
目录
相关文章
|
4天前
|
Java
【LeetCode力扣】面试题 17.14. 最小K个数(top-k问题)
【LeetCode力扣】面试题 17.14. 最小K个数(top-k问题)
8 1
|
4天前
leetcode代码记录(二叉树的所有路径
leetcode代码记录(二叉树的所有路径
9 0
|
4天前
|
存储 算法
【LeetCode力扣】单调栈解决Next Greater Number(下一个更大值)问题
【LeetCode力扣】单调栈解决Next Greater Number(下一个更大值)问题
5 0
|
5天前
leetcode代码记录(对称二叉树 中序遍历+回文串 为什么不行
leetcode代码记录(对称二叉树 中序遍历+回文串 为什么不行
7 0
|
5天前
leetcode代码记录(二叉树的最小深度
leetcode代码记录(二叉树的最小深度
8 0
|
5天前
leetcode代码记录(二叉树的最大深度
leetcode代码记录(二叉树的最大深度
7 0
|
5天前
|
算法 C++
【刷题】Leetcode 1609.奇偶树
这道题是我目前做过最难的题,虽然没有一遍做出来,但是参考大佬的代码,慢慢啃的感觉的真的很好。刷题继续!!!!!!
8 0
|
5天前
|
算法 索引
【刷题】滑动窗口精通 — Leetcode 30. 串联所有单词的子串 | Leetcode 76. 最小覆盖子串
经过这两道题目的书写,相信大家一定深刻认识到了滑动窗口的使用方法!!! 下面请大家继续刷题吧!!!
9 0
|
5天前
|
算法
【刷题】 leetcode 面试题 08.05.递归乘法
递归算法是一种在计算机科学和数学中广泛应用的解决问题的方法,其基本思想是利用问题的自我相似性,即将一个大问题分解为一个或多个相同或相似的小问题来解决。递归算法的核心在于函数(或过程)能够直接或间接地调用自身来求解问题的不同部分,直到达到基本情况(也称为基础案例或终止条件),这时可以直接得出答案而不必再进行递归调用。
21 4
【刷题】 leetcode 面试题 08.05.递归乘法