题解 | #按之字形顺序打印二叉树#
按之字形顺序打印二叉树
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(root *TreeNode) [][]int { // write code here //goLANG 利用数据灵活的实现队列 result := make([][]int, 0) if root == nil { return result } queue := make([]*TreeNode, 0) queue = append(queue, root) for len(queue) > 0 { size := len(queue) list := make([]int, 0) for step := 0; step < size; step++ { element := queue[0] //模仿队列从head取元素 queue = queue[1:] if len(result)%2 == 0 { list = append(list, element.Val) } else { list = append([]int{element.Val}, list...) } if element.Left != nil { queue = append(queue, element.Left) } if element.Right != nil { queue = append(queue, element.Right) } } result = append(result, list) } return result }