102.M 二叉树的层序遍历
Problem: 102. 二叉树的层序遍历
思路
层次遍历
Code
/**
* Definition for a binary tree node.
* type TreeNode struct {
* Val int
* Left *TreeNode
* Right *TreeNode
* }
*/
func levelOrder(root *TreeNode) [][]int {
if root == nil {
return nil
}
var ans [][]int
q := []*TreeNode{root}
for len(q) > 0 {
size := len(q)
var row []int
for size > 0 {
node := q[0]
q = q[1:]
row = append(row, node.Val)
if node.Left != nil {
q = append(q, node.Left)
}
if node.Right != nil {
q = append(q, node.Right)
}
size--
}
ans = append(ans, row)
}
return ans
}
Last updated
Was this helpful?