2024/8/31 LeetCode Hot100 binaryTree

This commit is contained in:
Cool 2024-09-01 02:20:54 +08:00
parent 3839cde010
commit 2dda42f570
2 changed files with 99 additions and 0 deletions

View File

@ -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);
}
}

View File

@ -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;
}
}