package tree; import java.util.ArrayDeque; import java.util.ArrayList; import java.util.List; import java.util.Queue; /** * 题目: 199. 二叉树的右视图 (rightSideView) * 描述:给定一个二叉树的 根节点 root,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。 * 链接:https://leetcode.cn/problems/binary-tree-right-side-view/description/ */ public class RightSideView { public List rightSideView(TreeNode root) { Queuequeue=new ArrayDeque<>(); Listres=new ArrayList<>(); if(root==null) return res; queue.offer(root); while (!queue.isEmpty()){ int size=queue.size(); for (int i = 0; i < size; i++) { TreeNode temp=queue.poll(); if(i==size-1) res.add(temp.val); if(temp.left!=null) queue.offer(temp.left); if(temp.right!=null) queue.offer(temp.right); } } return res; } }