Middle-题目37:199. Binary Tree Right Side View

原创 2016年05月31日 15:59:37

题目原文:
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].
题目大意:
给出一个二叉树,假设你的视线从右边看过去,返回从上到下你看到的节点(不在最右侧的都被挡上了)。
题目分析:
按层次遍历,求每层最后一个节点即可(即队列中改变层号的节点),在Easy-题目27基础上修改代码即可。
源码:(language:java)

/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode(int x) { val = x; }
 * }
 */
public class Solution {
    public List<Integer> rightSideView(TreeNode root) {

        Queue<TreeNode> queue=new LinkedList<TreeNode>();
        Queue<Integer> levelqueue=new LinkedList<Integer>();
        List<Integer> list=new ArrayList<Integer>();
         if(root == null)
            return list;
        queue.add(root);
        levelqueue.add(1);
        //list.add(root.val);

        while(!queue.isEmpty()) {
            TreeNode current = queue.remove();
            int curLevel=levelqueue.remove();

            if(current.left!=null) {
                queue.add(current.left);
                levelqueue.add(curLevel+1);
            }
            if(current.right!=null) {
                queue.add(current.right);
                levelqueue.add(curLevel+1);
            }
            if(levelqueue.isEmpty() == true || levelqueue.peek() == curLevel + 1)
                list.add(current.val);
        }
        return list;
    }
}

成绩:
3ms,beats 10.90%,众数3ms,40.54%

版权声明:完整版Leetcode题解请出门左转https://github.com/cmershen1/leetcode/tree/master/docs

相关文章推荐

leetcode 199. Binary Tree Right Side View-树的右视图|递归|非递归|Java|Python

原题链接:199. Binary Tree Right Side View 【思路】非递归实现 层次遍历,每一层都是从左到右遍历,将每一层的最右一个节点添加到结果集中就是我们需要得到的结果: publ...

LeetCodeOJ_199_Binary Tree Right Side View

Given a binary tree, imagine yourself standing on the right side of it, return the values of the nod...

LeetCode-199. Binary Tree Right Side View (JAVA)(二叉树最右侧结点)

LeetCode-199. Binary Tree Right Side View (JAVA)(二叉树最右侧结点)

Leetcode 199 Binary Tree Right Side View 二叉树右视图

给出一个二叉树,设想你从树的右侧看过来,返回你从上往下可以看到的结点.

No199. Binary Tree Right Side View

一、题目描述 Given a binary tree, imagine yourself standing on the right side of it, return the values of...

LeetCode题解-199-Binary Tree Right Side View

原题 原题链接:https://leetcode.com/problems/binary-tree-right-side-view/ 解法概览 解法1:迭代法,BFS 解法2:...

LeetCode 199. Binary Tree Right Side View

题目:给定一棵二叉树,每个节点的信息包括左右节点的指针,以及其本身的值。让你给出二叉树的“右视图”, 即从上至下给出每一层最右边的节点。           这题可以用宽度优先搜索的方法来做,具体实...

[LeetCode]199.Binary Tree Right Side View

题目Given a binary tree, imagine yourself standing on the right side of it, return the values of the n...

[JAVA]LeetCode199 Binary Tree Right Side View

Given a binary tree, imagine yourself standing on the right side of it, return the values of the nod...

[Leetcode] 199. Binary Tree Right Side View 解题报告

题目: Given a binary tree, imagine yourself standing on the right side of it, return the values o...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)