Skip to content

Commit 2608238

Browse files
committed
update/0515: add other solution
1 parent d1a87f1 commit 2608238

File tree

2 files changed

+44
-0
lines changed

2 files changed

+44
-0
lines changed

leetcode/0515.Find-Largest-Value-in-Each-Tree-Row/515. Find Largest Value in Each Tree Row.go

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,3 +92,25 @@ func largestValues1(root *TreeNode) []int {
9292
}
9393
return res
9494
}
95+
96+
// 解法三 深度遍历二叉树
97+
func largestValues3(root *TreeNode) []int {
98+
var res []int
99+
var dfs func(root *TreeNode, level int)
100+
dfs = func(root *TreeNode, level int) {
101+
if root == nil {
102+
return
103+
}
104+
if len(res) == level {
105+
res = append(res, root.Val)
106+
}
107+
if res[level] < root.Val {
108+
res[level] = root.Val
109+
}
110+
111+
dfs(root.Right, level+1)
112+
dfs(root.Left, level+1)
113+
}
114+
dfs(root, 0)
115+
return res
116+
}

website/content/ChapterFour/0500~0599/0515.Find-Largest-Value-in-Each-Tree-Row.md

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,28 @@ func largestValues1(root *TreeNode) []int {
9090
return res
9191
}
9292

93+
// 解法三 深度遍历二叉树
94+
func largestValues3(root *TreeNode) []int {
95+
var res []int
96+
var dfs func(root *TreeNode, level int)
97+
dfs = func(root *TreeNode, level int) {
98+
if root == nil {
99+
return
100+
}
101+
if len(res) == level {
102+
res = append(res, root.Val)
103+
}
104+
if res[level] < root.Val {
105+
res[level] = root.Val
106+
}
107+
108+
dfs(root.Right, level+1)
109+
dfs(root.Left, level+1)
110+
}
111+
dfs(root, 0)
112+
return res
113+
}
114+
93115
```
94116

95117

0 commit comments

Comments
 (0)