题解 | #按之字形顺序打印二叉树#
按之字形顺序打印二叉树
https://www.nowcoder.com/practice/91b69814117f4e8097390d107d2efbe0
package main import . "nc_tools" /* * type TreeNode struct { * Val int * Left *TreeNode * Right *TreeNode * } */ /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * @param pRoot TreeNode类 * @return int整型二维数组 */ func Print(pRoot *TreeNode) [][]int { // write code here if pRoot == nil{ return nil } res := [][]int{} stack := []*TreeNode{pRoot} for i := 0; len(stack) > 0; i++ { res = append(res, []int{}) nextLayer := []*TreeNode{} n := len(stack) for j := 0; j < n; j++ { node := stack[j] if i%2 == 0 { res[i] = append(res[i], node.Val) } else { res[i] = append(res[i], stack[n-1-j].Val) } if node.Left != nil { nextLayer = append(nextLayer, node.Left) } if node.Right != nil { nextLayer = append(nextLayer, node.Right) } } stack = nextLayer } return res }