2024/8/31 LeetCode Hot100 binaryTree
This commit is contained in:
parent
3839cde010
commit
2dda42f570
|
@ -0,0 +1,64 @@
|
||||||
|
package com.cool.hot100.binary_tree;
|
||||||
|
|
||||||
|
import sun.reflect.generics.tree.Tree;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.LinkedList;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Queue;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created with IntelliJ IDEA.
|
||||||
|
*
|
||||||
|
* @Author: Cool
|
||||||
|
* @Date: 2024/09/01/1:58
|
||||||
|
* DayNumber 2
|
||||||
|
* Hard 2
|
||||||
|
* Level 4
|
||||||
|
*/
|
||||||
|
public class Num199 {
|
||||||
|
|
||||||
|
|
||||||
|
public List<Integer> rightSideView(TreeNode root) {
|
||||||
|
// List<Integer> list = new ArrayList<>();
|
||||||
|
// dfs(root, list, 0);
|
||||||
|
// return list;
|
||||||
|
return bfs(root);
|
||||||
|
}
|
||||||
|
|
||||||
|
private List<Integer> bfs(TreeNode root) {
|
||||||
|
List<Integer> list = new ArrayList<>();
|
||||||
|
if (root == null) return list;
|
||||||
|
Queue<TreeNode> queue = new LinkedList<>();
|
||||||
|
queue.add(root);
|
||||||
|
while (!queue.isEmpty()) {
|
||||||
|
int size = queue.size();
|
||||||
|
for (int i = 0; i < size; i++) {
|
||||||
|
TreeNode node = queue.poll();
|
||||||
|
if (node != null && node.left != null) {
|
||||||
|
queue.add(node.left);
|
||||||
|
}
|
||||||
|
if (node != null && node.right != null) {
|
||||||
|
queue.add(node.right);
|
||||||
|
}
|
||||||
|
if (i == size - 1 && node != null) {
|
||||||
|
list.add(node.val);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//此为dfs解法
|
||||||
|
private void dfs(TreeNode root, List<Integer> list, int deep) {
|
||||||
|
if (root == null) return;
|
||||||
|
if (list.size() == deep) {
|
||||||
|
list.add(root.val);
|
||||||
|
}
|
||||||
|
dfs(root.right, list, ++deep);
|
||||||
|
dfs(root.left, list, deep);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,35 @@
|
||||||
|
package com.cool.hot100.binary_tree;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created with IntelliJ IDEA.
|
||||||
|
*
|
||||||
|
* @Author: Cool
|
||||||
|
* @Date: 2024/09/01/1:43
|
||||||
|
* DayNumber 1
|
||||||
|
* Hard 2
|
||||||
|
* Level 3
|
||||||
|
*/
|
||||||
|
public class Num230 {
|
||||||
|
|
||||||
|
|
||||||
|
public int kthSmallest(TreeNode root, int k) {
|
||||||
|
int[] arr = new int[k];
|
||||||
|
dfs(root, arr, 0);
|
||||||
|
return arr[arr.length - 1];
|
||||||
|
}
|
||||||
|
|
||||||
|
private int dfs(TreeNode root, int[] arr, int num) {
|
||||||
|
if (root == null) {
|
||||||
|
return num;
|
||||||
|
}
|
||||||
|
if (num >= arr.length) return num;
|
||||||
|
num = dfs(root.left, arr, num);
|
||||||
|
if (num >= arr.length) return num;
|
||||||
|
arr[num++] = root.val;
|
||||||
|
if (num >= arr.length) return num;
|
||||||
|
num = dfs(root.right, arr, num);
|
||||||
|
|
||||||
|
return num;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue