/** * Definition for a binary tree node. * type TreeNode struct { * Val int * Left *TreeNode * Right *TreeNode * } */ func printTree(root *TreeNode) [][]string { if root == nil { return [][]string{} } depth := 0 helper(root, 0, &depth) res := make([][]string, depth) for i := range res { res[i] = make([]string, 1<>1, res) printer(root.Right, x+det, y+1, det>>1, res) } func helper(root *TreeNode, y int, depth *int) { if root == nil { return } y++ if *depth < y { *depth = y } helper(root.Left, y, depth) helper(root.Right, y, depth) }