Skip to content

Commit c881767

Browse files
committed
leetcode: 2022-06-24 LeetCode515_FindLargeValueInEachTreeRow
1 parent 7ed974e commit c881767

1 file changed

Lines changed: 76 additions & 0 deletions

File tree

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
package com.wdbyte.leetcode;
2+
3+
import java.util.ArrayList;
4+
import java.util.List;
5+
6+
/**
7+
* https://leetcode.cn/problems/find-largest-value-in-each-tree-row/
8+
*
9+
* 515. 在每个树行中找最大值
10+
*
11+
* @author niulang
12+
* @date 2022/06/24
13+
*/
14+
public class LeetCode515_FindLargeValueInEachTreeRow {
15+
16+
public static void main(String[] args) {
17+
LeetCode515_FindLargeValueInEachTreeRow code515 = new LeetCode515_FindLargeValueInEachTreeRow();
18+
TreeNode tree3_5 = new TreeNode(5);
19+
TreeNode tree3_3 = new TreeNode(3);
20+
TreeNode tree3_9 = new TreeNode(9);
21+
TreeNode tree2_3 = new TreeNode(3, tree3_5, tree3_3);
22+
TreeNode tree2_2 = new TreeNode(2, null, tree3_9);
23+
TreeNode tree1_1 = new TreeNode(1, tree2_3, tree2_2);
24+
List<Integer> integers = code515.largestValues(tree1_1);
25+
System.out.println(integers);
26+
}
27+
28+
public List<Integer> largestValues(TreeNode root) {
29+
List<Integer> result = new ArrayList<>();
30+
if (root == null) {
31+
return result;
32+
}
33+
List<TreeNode> nodeList = new ArrayList<>();
34+
nodeList.add(root);
35+
while (!nodeList.isEmpty()) {
36+
List<TreeNode> nodeListTemp = new ArrayList<>();
37+
Integer max = null;
38+
for (TreeNode treeNode : nodeList) {
39+
if (treeNode == null) {
40+
continue;
41+
}
42+
if (max == null) {
43+
max = treeNode.val;
44+
}
45+
if (max < treeNode.val) {
46+
max = treeNode.val;
47+
}
48+
if (treeNode.left != null) {
49+
nodeListTemp.add(treeNode.left);
50+
}
51+
if (treeNode.right != null) {
52+
nodeListTemp.add(treeNode.right);
53+
}
54+
}
55+
result.add(max);
56+
nodeList = nodeListTemp;
57+
}
58+
return result;
59+
}
60+
}
61+
62+
class TreeNode {
63+
int val;
64+
TreeNode left;
65+
TreeNode right;
66+
67+
TreeNode() {}
68+
69+
TreeNode(int val) {this.val = val;}
70+
71+
TreeNode(int val, TreeNode left, TreeNode right) {
72+
this.val = val;
73+
this.left = left;
74+
this.right = right;
75+
}
76+
}

0 commit comments

Comments
 (0)