Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 68fcbe9

Browse files
author
侯利朋
committed
.\623.add-one-row-to-tree ok
1 parent 842b4a5 commit 68fcbe9

File tree

1 file changed

+51
-0
lines changed

1 file changed

+51
-0
lines changed

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

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
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+
}

0 commit comments

Comments
 (0)