/** * Definition for a binary tree node. * type TreeNode struct { * Val int * Left *TreeNode * Right *TreeNode * } */ func addOneRow(root *TreeNode, v int, d int) *TreeNode { if root == nil { return root } else if d == 1 { return &TreeNode{v, root, nil} } else if d == 2 { root.Left = &TreeNode{v, root.Left, nil} root.Right = &TreeNode{v, nil, root.Right} return root } root.Left = addOneRow(root.Left, v, d-1) root.Right = addOneRow(root.Right, v, d-1) return root }