Binary Tree Level Order Traversal II Solutions in Go
Number 107
Difficulty Easy
Acceptance 53.6%
Link LeetCode
Other languages C++
Solutions
Go solution by halfrost/LeetCode-Go
package leetcodeimport ("github.com/halfrost/LeetCode-Go/structures")// TreeNode definetype TreeNode = structures.TreeNode/*** Definition for a binary tree node.* type TreeNode struct {* Val int* Left *TreeNode* Right *TreeNode* }*/func levelOrderBottom(root *TreeNode) [][]int {tmp := levelOrder(root)res := [][]int{}for i := len(tmp) - 1; i >= 0; i-- {res = append(res, tmp[i])}return res}func levelOrder(root *TreeNode) [][]int {if root == nil {return [][]int{}}queue := []*TreeNode{}queue = append(queue, root)curNum, nextLevelNum, res, tmp := 1, 0, [][]int{}, []int{}for len(queue) != 0 {if curNum > 0 {node := queue[0]if node.Left != nil {queue = append(queue, node.Left)nextLevelNum++}if node.Right != nil {queue = append(queue, node.Right)nextLevelNum++}curNum--tmp = append(tmp, node.Val)queue = queue[1:]}if curNum == 0 {res = append(res, tmp)curNum = nextLevelNumnextLevelNum = 0tmp = []int{}}}return res}