文章目录

  • 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)相关推荐

  1. 找到二叉树中符合搜索二叉树条件的最大拓扑结构

    找到二叉树中符合搜索二叉树条件的最大拓扑结构 给定一棵二叉树的头节点 head,已知所有节点的值都不一样,返回其中最大的.且符合搜索二叉树 条件的拓扑结构的节点数.这里的拓扑结构是指,你可以在二叉树中 ...

  2. 找到二叉树中的最大搜索二叉子树

    找到二叉树中的最大搜索二叉子树 给定一棵二叉树的头节点head,已知其中所有节点的值都不一样,找到含有节点最多的搜索二叉子树,并返回这棵子树的头节点. 如果节点数为N,要求时间复杂度为 O(N),额外 ...

  3. 二叉树中如何求根节点到任意节点的路径?

    二叉树中如何求任一节点的路径呢? 思路 使用先序遍历,处理的时候让节点入栈,并且加上标志位即可. 使用另外的result保存最终的路径. 函数 void pre_order(TreeNode * no ...

  4. 算法----- 给定一颗二叉树,找到二叉树上任意两个节点之间的距离(Java版本)

    题目: 给定一颗二叉树,找到二叉树上任意两个节点之间的距离 class TreeNode {TreeNode left;TreeNode right;} 思路: 首先找到一个节点的路径,然后找到另一个 ...

  5. LeetCode实战:二叉树中的最大路径和

    背景 为什么你要加入一个技术团队? 如何加入 LSGO 软件技术团队? 我是如何组织"算法刻意练习活动"的? 为什么要求团队的学生们写技术Blog 题目英文 Given a non ...

  6. LeetCode 438. 找到字符串中所有字母异位词(滑动窗口)

    1. 题目 给定一个字符串 s 和一个非空字符串 p,找到 s 中所有是 p 的字母异位词的子串,返回这些子串的起始索引. 字符串只包含小写英文字母,并且字符串 s 和 p 的长度都不超过 20100 ...

  7. leetcode刷题之 树(14)-递归:找出二叉树中第二小的节点

    [LeetCode] Second Minimum Node In a Binary Tree 二叉树中第二小的结点 Given a non-empty special binary tree con ...

  8. leetcode算法题--二叉树中的最长交错路径★

    原题链接:https://leetcode-cn.com/problems/longest-zigzag-path-in-a-binary-tree/ 嵌套递归(超时) 相关题目:二叉树中的列表 in ...

  9. leetcode算法题--二叉树中序遍历迭代法

    原题链接:https://leetcode-cn.com/problems/binary-tree-inorder-traversal/ 二叉树中序遍历迭代法,栈实现 vector<int> ...

最新文章

  1. Swift快速入门之getter 和 setter
  2. MongoDB进阶系列(11)——“改”的那些事(二)文档的keyvalue为数组的修改方法...
  3. Mysql的性能优化
  4. 【bzoj2724】[Violet 6]蒲公英 分块+STL-vector
  5. 【DBMS 数据库管理系统】OLAP 核心技术 : 数据方体 ( 数据方体 | 数据方体格结构 | 数据单元 )
  6. (6)nginx:rewrite
  7. 量子纠缠背后的故事(三):维格纳的朋友 精选
  8. clipse中Access restriction: The type ‘XXX’ is not API 解决
  9. 特斯拉员工薪酬曝光 最低54万元!
  10. c语言实现输入任何十进制数,转换为相对应的2进制数 递归,我做的是这个C语言程序:采用递归方法,实现将十进制整数转换成二进制数(含整数部分与小数部分)...
  11. oracle java耗cpu_ORACLE高手请看过来,CPU使用率100% (100分)
  12. Object-c 内存管理
  13. Excel宏去除汉字
  14. 为什么要用promise处理ajax,为什么要使用promise
  15. 51CTO学院三周年
  16. 最常见的开源游戏引擎
  17. C# 重写(override)
  18. 关于VMware Desktone中的Slony和数据库
  19. window创建l2tp
  20. 如何包含鼠标指针(箭头)截图或者录屏?

热门文章

  1. Python 之 Python2 和 Python3 的区别
  2. vue 用key拿对象value_利用 WeakMap 对 Vue 新建数组中的对象赋予 :key
  3. tutte定理证明hall定理_深入浅出|中心极限定理(Central Limit Theorem)及证明
  4. canny算子的理论分析
  5. 博客地址 RSS地址
  6. 《DIY四轴飞行器》读书笔记1
  7. 数据结构探险——树篇
  8. 查看端口是否被占用,以及端口的应用名称
  9. 解决python中遇到的乱码问题
  10. 【BZOJ 3191】[JLOI2013]卡牌游戏