二叉树的右视图题目描述:给定一棵二叉树的根节点root,想象自己站在它的右边,并从右边返回你能得到的从上到下顺序查看节点值。例子见LeetCode官网。来源:LeetCode链接:https://leetcode-cn.com/probl...版权归LeetCode所有。商业转载请联系官方授权,非商业转载请注明出处。方案一:二叉树层序遍历利用二叉树队列先进先出层序遍历的特点,具体过程如下:初始化一个队列,将根节点加入队列队列为第一层;循环遍历队列中的每一层元素暂存在二维List中,将下一层的节点按从左到右的顺序加入队列;直到队列为空,遍历结束。最后从二维List中按顺序取出每一层的最后一个元素返回。importcom.kaesar.leetcode.TreeNode;importjava.util.ArrayList;importjava.util.LinkedList;importjava.util.List;importjava.util.Queue;publicclassLeetCode_199{/***层序遍历*通过使用先进先出队列遍历二叉树**@paramroot*@return*/publicstaticListrightSideView(TreeNoderoot){if(root==null){returnnewArrayList<>();}//暂存每一层的节点List>numsList=newArrayList<>();Queuenodes=newLinkedList<>();节点。添加(根);//遍历每一层节点,将下一层节点从左到右加入队列while(!nodes.isEmpty()){Listnums=newArrayList<>();intcount=nodes.size();for(inti=0;iresult=newArrayList<>();//按顺序获取每个数组层的最后一个元素for(Listintegers:numsList){result.add(integers.get(integers.size()-1));}返回结果;}publicstaticvoidmain(String[]args){/***测试用例:*1*23*54*/TreeNoderoot=newTreeNode(1);root.left=newTreeNode(2);root.right=newTreeNode(3);根.左。右=新树节点(5);root.right.right=newTreeNode(4);//预期输出:1,3,4for(Integerinteger:rightSideView(root)){System.out.print(integer+"");}}}【每日留言】如果一个人努力变得更好,做好自己的工作,为自己找到快乐,并且有竞争力,那我就是赢家!