☰
45 二叉树的右视图
2026/9/29 12:25:57 网站建设 项目流程

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

示例 1:

输入:root = [1,2,3,null,5,null,4]

输出:[1,3,4]

解释:

示例 2:

输入:root = [1,2,3,4,null,null,null,5]

输出:[1,3,4,5]

解释:

示例 3:

输入:root = [1,null,3]

输出:[1,3]

示例 4:

输入:root = []

输出:[]

提示:

  • 二叉树的节点个数的范围是[0,100]
  • -100 <= Node.val <= 100
思路

使用层次遍历的方法遍历二叉树的每一层,然后取每一层的最后一个元素即可

vector<int> rightSideView(TreeNode* root) { vector<int> res; if(!root) return res; queue<TreeNode*> inque; inque.push(root); int queSize=0; while(!inque.empty()){ queSize=inque.size(); for(int i=0;i<queSize-1;i++){ root=inque.front(); if(root->left) inque.push(root->left); if(root->right) inque.push(root->right); inque.pop(); } //处理每一层的最后一个元素 root=inque.front(); res.push_back(root); if(root->left) inque.push(root->left); if(root->right) inque.push(root->right); inque.pop(); } return res; }

推荐一个零声教育学习教程,个人觉得老师讲得不错,分享给大家:[Linux,Nginx ,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,TCP/IP,协程,DPDK等技术内容,点击立即学习:链接

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询