LeetCode 199-Binary Tree Right Side View

来源:互联网 发布:张志扬 知乎 编辑:程序博客网 时间:2024/05/08 09:35

Given a binary tree, imagine yourself standing on the right side of it, return the values of the nodes you can see ordered from top to bottom.

For example:
Given the following binary tree,

   1            <--- /   \2     3         <--- \     \  5     4       <---

You should return [1, 3, 4].

题目解析:这一题没什么难度。就是对整棵数进行层次遍历,将每一层的最后一个节点的数值加到list里,最后返回list即可

代码:

public class Solution {    public List<Integer> rightSideView(TreeNode root) {    List<Integer> list=new ArrayList<Integer>();    if(root==null) return list;    Queue<TreeNode> queue1=new LinkedList<TreeNode>();    Queue<TreeNode> queue2=new LinkedList<TreeNode>();    queue1.add(root);    while(!queue1.isEmpty()||!queue2.isEmpty()){    while(!queue1.isEmpty()){    TreeNode node=queue1.poll();    if(node.left!=null)queue2.add(node.left);    if(node.right!=null)queue2.add(node.right);    if(queue1.isEmpty())list.add(node.val);    }    while(!queue2.isEmpty()){    TreeNode node=queue2.poll();    if(node.left!=null)queue1.add(node.left);    if(node.right!=null)queue1.add(node.right);    if(queue2.isEmpty())list.add(node.val);    }    }return list;            }}

0 0
原创粉丝点击