623.add-one-row-to-tree.go 506 B

1234567891011121314151617181920212223
  1. /**
  2. * Definition for a binary tree node.
  3. * type TreeNode struct {
  4. * Val int
  5. * Left *TreeNode
  6. * Right *TreeNode
  7. * }
  8. */
  9. func addOneRow(root *TreeNode, v int, d int) *TreeNode {
  10. if root == nil {
  11. return root
  12. } else if d == 1 {
  13. return &TreeNode{v, root, nil}
  14. } else if d == 2 {
  15. root.Left = &TreeNode{v, root.Left, nil}
  16. root.Right = &TreeNode{v, nil, root.Right}
  17. return root
  18. }
  19. root.Left = addOneRow(root.Left, v, d-1)
  20. root.Right = addOneRow(root.Right, v, d-1)
  21. return root
  22. }