File tree Expand file tree Collapse file tree 1 file changed +51
-0
lines changed Expand file tree Collapse file tree 1 file changed +51
-0
lines changed Original file line number Diff line number Diff line change
1
+ /*
2
+ * @lc app=leetcode id=623 lang=golang
3
+ *
4
+ * [623] Add One Row to Tree
5
+ */
6
+ /**
7
+ * Definition for a binary tree node.
8
+ * type TreeNode struct {
9
+ * Val int
10
+ * Left *TreeNode
11
+ * Right *TreeNode
12
+ * }
13
+ */
14
+ // (44 ms) √ Your runtime beats 94.12 %
15
+ func addOneRow (root * TreeNode , v int , d int ) * TreeNode {
16
+ // if root == nil { 题目要求非空
17
+ // return root
18
+ // }
19
+ if d == 1 {
20
+ return & TreeNode {
21
+ Val : v ,
22
+ Left : root ,
23
+ Right : nil ,
24
+ }
25
+ }
26
+ // 找到第d-1层的节点
27
+ queue := []* TreeNode {}
28
+ queue = append (queue , root )
29
+ for len (queue ) > 0 {
30
+ d --
31
+ if d == 1 {
32
+ break
33
+ }
34
+ size := len (queue )
35
+ for i := 0 ; i < size ; i ++ {
36
+ node := queue [0 ]
37
+ queue = queue [1 :]
38
+ if node .Left != nil {
39
+ queue = append (queue , node .Left )
40
+ }
41
+ if node .Right != nil {
42
+ queue = append (queue , node .Right )
43
+ }
44
+ }
45
+ }
46
+ for i := 0 ; i < len (queue ); i ++ {
47
+ queue [i ].Left = & TreeNode {v , queue [i ].Left , nil }
48
+ queue [i ].Right = & TreeNode {v , nil , queue [i ].Right }
49
+ }
50
+ return root
51
+ }
You can’t perform that action at this time.
0 commit comments