Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 6990456

Browse files
add 515 solution for java
1 parent fbcd5b7 commit 6990456

File tree

1 file changed

+35
-0
lines changed
  • solution/0500-0599/0515.Find Largest Value in Each Tree Row

1 file changed

+35
-0
lines changed
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
/**
2+
* Definition for a binary tree node.
3+
* public class TreeNode {
4+
* int val;
5+
* TreeNode left;
6+
* TreeNode right;
7+
* TreeNode(int x) { val = x; }
8+
* }
9+
*/
10+
public class Solution {
11+
// 深度遍历
12+
public List<Integer> largestValues(TreeNode root) {
13+
List<Integer> list = new ArrayList<>();
14+
dfs(list, root, 0);
15+
return list;
16+
}
17+
18+
private void dfs(List<Integer> list, TreeNode root, int level) {
19+
if (root == null) {
20+
return;
21+
}
22+
// 每深入一层,先把那一层的第一个节点加入返回 list中
23+
if (list.size() == level) {
24+
list.add(root.val);
25+
}
26+
// 此时 size > level ,那么就是开始遍历每一层 的 其他节点(不包括最左边的节点),
27+
// 直接比较list的对应下标(index)的值与当前值就好
28+
else {
29+
list.set(level, Math.max(list.get(level), root.val));
30+
}
31+
// 左右子树,深度要+1
32+
dfs(list, root.left, level + 1);
33+
dfs(list, root.right, level + 1);
34+
}
35+
}

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /