LeetCode 1602. 找到二叉树中最近的右侧节点(BFS)
文章目录
- 1. 题目
- 2. 解题
1. 题目
给定一棵二叉树的根节点 root 和树中的一个节点 u ,返回与 u 所在层中距离最近的右侧节点,当 u 是所在层中最右侧的节点,返回 null 。
示例 1:
输入:root = [1,2,3,null,4,5,6], u = 4
输出:5
解释:节点 4 所在层中,最近的右侧节点是节点 5。
示例 2:
输入:root = [3,null,4,2], u = 2
输出:null
解释:2 的右侧没有节点。示例 3:
输入:root = [1], u = 1
输出:null示例 4:
输入:root = [3,4,2,null,null,null,1], u = 4
输出:2提示:
树中节点个数的范围是 [1, 105] 。
1 <= Node.val <= 105
树中所有节点的值是唯一的。
u 是以 root 为根的二叉树的一个节点。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/find-nearest-right-node-in-binary-tree
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
2. 解题
/*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}* TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}* };*/
class Solution {public:TreeNode* findNearestRightNode(TreeNode* root, TreeNode* u) {queue<TreeNode*> q; q.push(root);TreeNode* cur;while(!q.empty()){int size = q.size();while(size--){cur = q.front();q.pop();if(size && cur==u)return q.front();else if(!size && cur==u)return NULL;if(cur->left)q.push(cur->left);if(cur->right)q.push(cur->right);}}return NULL;}
};
156 ms 84.5 MB C++
我的CSDN博客地址 https://michael.blog.csdn.net/
长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!
LeetCode 1602. 找到二叉树中最近的右侧节点(BFS)相关推荐
- 找到二叉树中符合搜索二叉树条件的最大拓扑结构
找到二叉树中符合搜索二叉树条件的最大拓扑结构 给定一棵二叉树的头节点 head,已知所有节点的值都不一样,返回其中最大的.且符合搜索二叉树 条件的拓扑结构的节点数.这里的拓扑结构是指,你可以在二叉树中 ...
- 找到二叉树中的最大搜索二叉子树
找到二叉树中的最大搜索二叉子树 给定一棵二叉树的头节点head,已知其中所有节点的值都不一样,找到含有节点最多的搜索二叉子树,并返回这棵子树的头节点. 如果节点数为N,要求时间复杂度为 O(N),额外 ...
- 二叉树中如何求根节点到任意节点的路径?
二叉树中如何求任一节点的路径呢? 思路 使用先序遍历,处理的时候让节点入栈,并且加上标志位即可. 使用另外的result保存最终的路径. 函数 void pre_order(TreeNode * no ...
- 算法----- 给定一颗二叉树,找到二叉树上任意两个节点之间的距离(Java版本)
题目: 给定一颗二叉树,找到二叉树上任意两个节点之间的距离 class TreeNode {TreeNode left;TreeNode right;} 思路: 首先找到一个节点的路径,然后找到另一个 ...
- LeetCode实战:二叉树中的最大路径和
背景 为什么你要加入一个技术团队? 如何加入 LSGO 软件技术团队? 我是如何组织"算法刻意练习活动"的? 为什么要求团队的学生们写技术Blog 题目英文 Given a non ...
- LeetCode 438. 找到字符串中所有字母异位词(滑动窗口)
1. 题目 给定一个字符串 s 和一个非空字符串 p,找到 s 中所有是 p 的字母异位词的子串,返回这些子串的起始索引. 字符串只包含小写英文字母,并且字符串 s 和 p 的长度都不超过 20100 ...
- leetcode刷题之 树(14)-递归:找出二叉树中第二小的节点
[LeetCode] Second Minimum Node In a Binary Tree 二叉树中第二小的结点 Given a non-empty special binary tree con ...
- leetcode算法题--二叉树中的最长交错路径★
原题链接:https://leetcode-cn.com/problems/longest-zigzag-path-in-a-binary-tree/ 嵌套递归(超时) 相关题目:二叉树中的列表 in ...
- leetcode算法题--二叉树中序遍历迭代法
原题链接:https://leetcode-cn.com/problems/binary-tree-inorder-traversal/ 二叉树中序遍历迭代法,栈实现 vector<int> ...
最新文章
- Swift快速入门之getter 和 setter
- MongoDB进阶系列(11)——“改”的那些事(二)文档的keyvalue为数组的修改方法...
- Mysql的性能优化
- 【bzoj2724】[Violet 6]蒲公英 分块+STL-vector
- 【DBMS 数据库管理系统】OLAP 核心技术 : 数据方体 ( 数据方体 | 数据方体格结构 | 数据单元 )
- (6)nginx:rewrite
- 量子纠缠背后的故事(三):维格纳的朋友 精选
- clipse中Access restriction: The type ‘XXX’ is not API 解决
- 特斯拉员工薪酬曝光 最低54万元!
- c语言实现输入任何十进制数,转换为相对应的2进制数 递归,我做的是这个C语言程序:采用递归方法,实现将十进制整数转换成二进制数(含整数部分与小数部分)...
- oracle java耗cpu_ORACLE高手请看过来,CPU使用率100% (100分)
- Object-c 内存管理
- Excel宏去除汉字
- 为什么要用promise处理ajax,为什么要使用promise
- 51CTO学院三周年
- 最常见的开源游戏引擎
- C# 重写(override)
- 关于VMware Desktone中的Slony和数据库
- window创建l2tp
- 如何包含鼠标指针(箭头)截图或者录屏?