博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Leetcode 199. 二叉树的右视图 二叉树的遍历
阅读量:3903 次
发布时间:2019-05-23

本文共 1833 字,大约阅读时间需要 6 分钟。

给定一棵二叉树,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。

示例:

输入: [1,2,3,null,5,null,4]输出: [1, 3, 4]解释:   1            <--- /   \2     3         <--- \     \  5     4       <---

此题有两种解法,一种是二叉树的层序遍历,一种是递归左右子树。。

1.层序遍历:

 只需要在普通的层序遍历中的先遍历左子树再右子树的顺序颠倒即可。。。即先右子树再左子树,然后取队首元素即可。。

 代码如下:

 

/** * Definition for a binary tree node. * struct TreeNode { *     int val; *     TreeNode *left; *     TreeNode *right; *     TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public:    vector
rightSideView(TreeNode* root) { vector
re; if(root==NULL) return re; queue
q; q.push(root); while (!q.empty()) { int Size=q.size(); if(Size) re.push_back(q.front()->val); //取出元素 while (Size--) { TreeNode* t=q.front(); q.pop(); if(t->right) q.push(t->right); if(t->left) q.push(t->left); } } return re; }};

耗时:4ms 

2递归遍历:

 先递归右子树,再递归左子树, 如果节点的值比当前最大高度高的话, 直接push进去。 。

代码如下:

 

/** * Definition for a binary tree node. * struct TreeNode { *     int val; *     TreeNode *left; *     TreeNode *right; *     TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public:    int Maxdep=0;    vector
re; vector
rightSideView(TreeNode* root) { if(root==NULL) return re; traverse (root,1); return re; } void traverse (TreeNode* root,int depth) { if(depth>Maxdep) { re.push_back(root->val); Maxdep=depth; } if(root->right) traverse (root->right,depth+1); if(root->left) traverse (root->left,depth+1); } };

 

转载地址:http://ztaen.baihongyu.com/

你可能感兴趣的文章
pandas学习笔记
查看>>
Numpy笔记
查看>>
正则表达式
查看>>
python线程进程笔记
查看>>
TensorFlow初学者必须了解的55个经典案例
查看>>
机器学习笔记
查看>>
数十种TensorFlow实现案例汇集:代码+笔记
查看>>
python记录的错误与知识
查看>>
内核中各种套接字的关系
查看>>
linux sysctl 参数实现 暨 ip_forward参数对Linux内核转发影响分析
查看>>
linux 路由表 的一些相关资料
查看>>
Linux 路由 学习笔记 之三 路由查找流程分析
查看>>
LINUX IP 路由实现
查看>>
快速重传与快速恢复算法
查看>>
TCP重传定时器
查看>>
CentOS 6.3 - 安装 Nginx 1.2.7(yum源)
查看>>
shell中trap捕获信号
查看>>
关于Linux Shell的信号trap功能你必须知道的细节
查看>>
Linux原始套接字实现分析
查看>>
CENTOS 6.5 配置YUM安装NGINX
查看>>