【力扣Hot100】刷题日记

D32

二叉树的右视图

二叉树的右视图

DFS

java 复制代码
/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode() {}
 *     TreeNode(int val) { this.val = val; }
 *     TreeNode(int val, TreeNode left, TreeNode right) {
 *         this.val = val;
 *         this.left = left;
 *         this.right = right;
 *     }
 * }
 */
class Solution {
    List<Integer> list = new ArrayList<>();
    public List<Integer> rightSideView(TreeNode root) {
        
        dfs(root, 1);
        return list;
    }

    public void dfs(TreeNode root, int height){
        if(root == null) return;
        if(height > list.size()) list.add(root.val);
        dfs(root.right, height + 1);
        dfs(root.left, height + 1);
    }
}

BFS

java 复制代码
/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode() {}
 *     TreeNode(int val) { this.val = val; }
 *     TreeNode(int val, TreeNode left, TreeNode right) {
 *         this.val = val;
 *         this.left = left;
 *         this.right = right;
 *     }
 * }
 */
class Solution {
    List<Integer> list = new ArrayList<>();
    Queue<TreeNode> queue = new ArrayDeque<>();
    public List<Integer> rightSideView(TreeNode root) {
        if(root != null) queue.add(root);
        bfs(root);
        return list;
    }

    public void bfs(TreeNode root){
        while(!queue.isEmpty()){
            int size = queue.size();
            for(int i = 0; i < size; i++){
                // 层序遍历,但只留最右一个节点
                TreeNode node = queue.poll();
                if(node.left != null) queue.add(node.left);
                if(node.right != null) queue.add(node.right);
                if(i == size - 1) list.add(node.val);
            }
            
        }
    }
}
相关推荐
天才少女爱迪生几秒前
图像序列预测有什么算法方案
人工智能·python·深度学习·算法
cici158743 分钟前
3D有限元直流电阻率法正演程序
算法·3d
黑色的山岗在沉睡7 分钟前
滤波算法数学前置——线性化
线性代数·算法
t198751289 分钟前
火电机组热经济性分析MATLAB程序实现
人工智能·算法·matlab
Hello娃的18 分钟前
【半导体】肖特基接触AND欧姆接触
人工智能·算法
橘颂TA18 分钟前
【剑斩OFFER】算法的暴力美学——交易逆序对的总数
数据结构·算法·leetcode
xiyuping2421 分钟前
强化学习之——moutaincar
算法·机器学习
小画家~23 分钟前
第三十七:类型断言
开发语言·c++·算法·golang
九年义务漏网鲨鱼27 分钟前
【大模型微调】QLoRA微调原理及实战
深度学习·算法·大模型·智能体
2401_8414956427 分钟前
【LeetCode刷题】合并区间
数据结构·python·算法·leetcode·合并·遍历·排序