Binary Tree Right Side View

原创 2015年11月20日 16:33:12
  1. 问题

    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].

  2. 解答
    class Solution1 {
    public:
        vector<int> rightSideView(TreeNode* root) {
            vector<int> res;
            
            while(root)
            {
                res.push_back(root->val);
                TreeNode *f1;
                
                if(root->right==NULL)
                {
                   f1=root->left;
                   if(f1==NULL) break;
                }
                else
                   f1=root->right;
                   
                root=f1;
            }
            
            return res;
        }
    };
    
    class Solution {
    public:
        vector<int> rightSideView(TreeNode *root) {
            vector<int> ans;
            if (root == nullptr) return ans;
            queue<TreeNode*> que;
            que.push(root);
            TreeNode* curr;
            while(!que.empty()) {
                int cnt = que.size();
                for (int i = 0; i < cnt; i++) {
                    curr = que.front(); que.pop();
                    if (curr->left) {
                        que.push(curr->left);
                    }
                    if (curr->right) {
                        que.push(curr->right);
                    }
                }
                ans.push_back(curr->val);
            }
            return ans;
        }
    };


版权声明:本文为博主原创文章,未经博主允许不得转载。

Binary Tree Right Side View (是不是得写篇字庆贺一下啊)

好像是中级题目以来,第一次自己思路一次就通过的的,红红火火恍恍惚惚哼哼哈嘿,是不是得写篇字庆贺一下啊,虽说不难吧,红红火火恍恍惚惚哼哼哈嘿。 层级遍历,打印每层的最后一个数字。 /** * De...
  • sjphiChina
  • sjphiChina
  • 2016年06月15日 15:15
  • 114

二叉搜索树(Binary Search Tree )的定义及分析

定义:     二叉搜索树或者是一棵空树,或者是具有下列性质的二叉树: 每个结点都有一个作为搜索依据的关键码(key),所有结点的关键码互不相同。 左子树(如果非空)上所...
  • jsh13417
  • jsh13417
  • 2013年01月22日 21:59
  • 3342

二叉搜索树(Binary Search Tree)的插入与删除

二叉搜索树的插入关键是要找到元素应该插入的位置,可以采用与Find类似的方法。 二叉搜索树的删除则要考虑三种情况:   1.要删除的是叶节点:直接删除,并再修改其父节点指针置为NULL ...
  • song_hui_xiang
  • song_hui_xiang
  • 2015年08月16日 13:10
  • 982

数据结构(Java语言)——BinarySearchTree简单实现

二叉树的一个重要应用是它们在查找中的使用。使二叉树成为二叉查找树的性质是,对于树中的每个节点X,它的左子树中所有项的值都大于X中的项。注意,这意味着该树所有的元素都可以用某种一致的方式排序。 现在给出...
  • zhang_zp2014
  • zhang_zp2014
  • 2015年08月14日 21:55
  • 930

算法导论C语言实现: 二叉搜索树(binary tree)

1. 源代码 ia_binarytree.h #ifndef __IA_BINARY_TREE_H__ #define __IA_BINARY_TREE_H__ #include typede...
  • v2nero
  • v2nero
  • 2014年01月05日 22:38
  • 1188

[Go语言]binary tree算法的华山论剑

在benchmarkgame(世界上最火的性能对比网站)上,Go语言一直有一个槽点,就是极其慢的binary tree性能,执行用时40秒 (我的机器上,16秒),与此对比,Java版本是6秒,那么问...
  • abv123456789
  • abv123456789
  • 2016年12月31日 16:32
  • 2759

二叉查找树(binary search tree)——python实现

二叉查找树(binary search tree) 顾名思义二叉查找树中每个jied
  • u013184096
  • u013184096
  • 2014年07月11日 21:59
  • 1436

pat 甲1127. ZigZagging on a Tree (已知后序及中序建树,并层次往返输出)

1127. ZigZagging on a Tree (30) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 1...
  • qq_27601815
  • qq_27601815
  • 2017年03月05日 18:01
  • 830

Binary Tree Traversal二叉树遍历方法总结

Binary Tree Traversal二叉树遍历方法总结这里总结的二叉树遍历分为两大类: 深度优先(depth-first traversal) 广度优先(breadth-first traver...
  • jackey_jk
  • jackey_jk
  • 2016年04月01日 02:58
  • 764

Erlang(3):数据类型与变量

1.初步尝试控制台的操作。输入 1> a = 20结果没反应。。。 后来发现erlang的语句是以.号来结尾的。改改: 1> a = 20. ** exception error: no mat...
  • u012175089
  • u012175089
  • 2017年01月14日 12:11
  • 2481
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Binary Tree Right Side View
举报原因:
原因补充:

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