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