LeetCode 1650. 二叉树的最近公共祖先 III(哈希)

文章目录

    • 1. 题目
    • 2. 解题

1. 题目

给定一棵二叉树中的两个节点 p 和 q,返回它们的最近公共祖先节点(LCA)。

每个节点都包含其父节点的引用(指针)。Node 的定义如下:

class Node {public int val;public Node left;public Node right;public Node parent;
}

根据维基百科中对最近公共祖先节点的定义:“两个节点 p 和 q 在二叉树 T 中的最近公共祖先节点是后代节点中既包括 p 又包括 q 的最深节点(我们允许一个节点为自身的一个后代节点)”。

一个节点 x 的后代节点是节点 x 到某一叶节点间的路径中的节点 y。

示例 1:
在这里插入图片描述

输入: root = [3,5,1,6,2,0,8,null,null,7,4], p = 5, q = 1
输出: 3
解释: 节点 51 的最近公共祖先是 3

示例 2:
在这里插入图片描述

输入: root = [3,5,1,6,2,0,8,null,null,7,4], p = 5, q = 4
输出: 5
解释: 节点 54 的最近公共祖先是 5,根据定义,一个节点可以是自身的最近公共祖先。示例 3:
输入: root = [1,2], p = 1, q = 2
输出: 1提示:
树中节点个数的范围是 [2, 10^5]-109 <= Node.val <= 109
所有的 Node.val 都是互不相同的。
p != q
p 和 q 存在于树中。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/lowest-common-ancestor-of-a-binary-tree-iii
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

  • 往上找父亲,并插入哈希,另一个节点也往上找,直到父亲在哈希中出现
/*
// Definition for a Node.
class Node {
public:int val;Node* left;Node* right;Node* parent;
};
*/class Solution {
public:Node* lowestCommonAncestor(Node* p, Node * q) {unordered_set<Node*> s;while(p){s.insert(p);p = p->parent;}while(q){if(s.find(q) != s.end())return q;q = q->parent;}return NULL;}
};

16 ms 11.3 MB C++

不用哈希,就是等效为链表相交,求相交节点问题。


我的CSDN博客地址 https://michael.blog.csdn.net/

长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!
Michael阿明

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/471915.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PHP方向+go+rpc+swoole,瞅瞅 PHP+Swoole 作为网络通信框架

这里瞅瞅Swoole框架&#xff0c;因为说的比较屌&#xff0c;官网里面文档比较多https://www.swoole.com/代码地址(https://gitee.com/swoole/swoole)这里先复制他的说明(https://wiki.swoole.com/)Swoole底层内置了异步非阻塞、多线程的网络IO服务器。PHP程序员仅需处理事件回调…

三角形外接球万能公式_外接球半径常见的求法

2&#xff1a;若一个多面体的各面都与一个球的球面相切&#xff0c;则称这个多面体是这个球的外切多面体&#xff0c;这个球是这个多面体的内切球。球心到截面的距离d与球半径R及截面的半径r有以下关系&#xff1a;&#xff0e;球面被经过球心的平面截得的圆叫&#xff0e;被不…

如何准备考试

最近准备International Requirement Engeering Board 考试&#xff0c;但凡上点年纪对记忆就不行了&#xff0c;时间也不够&#xff0c;就想着怎么偷懒。 因此&#xff0c;就把测试题做了一遍&#xff0c;然后分析各个章节的分值比重及自己容易错的地方的比重。然后有的放矢再去…

LeetCode 1676. 二叉树的最近公共祖先 IV

文章目录1. 题目2. 解题1. 题目 给定一棵二叉树的根节点 root 和 TreeNode 类对象的数组&#xff08;列表&#xff09; nodes&#xff0c;返回 nodes 中所有节点的最近公共祖先&#xff08;LCA&#xff09;。 数组&#xff08;列表&#xff09;中所有节点都存在于该二叉树中&a…

matlab行人检测非极大值抑制,多目标检测中的非极大值抑制(NMS)的算法改进_jza...

非极大值抑制(Non-Maximum Suppression&#xff0c;NMS)&#xff0c;顾名思义就是抑制不是极大值的元素&#xff0c;可以理解为局部最大搜索。这个局部代表的是一个邻域&#xff0c;邻域有两个参数可变&#xff0c;一是邻域的维数&#xff0c;二是邻域的大小。而是用于目标检测…

android 粘性view_Android自定义StickinessView粘性滑动效果

design包的出现&#xff0c;Android界面发生了巨大变化&#xff0c;各种滑动配合的效果&#xff0c;下面我就粘性滑动中的一种进行自定义&#xff0c;效果图如下&#xff1a;大家看到效果了&#xff0c;这里我是继承了LinerLayout&#xff0c;方便一点&#xff0c;若果是ViewGr…

Azure SQL 数据库:服务级别与性能问答

ShawnBice 2014 年 5 月 5 日上午 10:00 几天前&#xff0c;我发表了一篇文章&#xff0c;并就 4 月 24 日发布的适用于Windows Azure SQL 数据库的新服务级别提供了一些预料中的问题和解答&#xff0c;在其中为读者介绍了一些详细信息。在这篇跟进文章中&#xff0c;我想提…

matlab粒子图像测速工具,程序 PIVlab - 时间分辨粒子图像测速(PIV)工具: 一 联合开发网 - pudn.com...

程序所属分类&#xff1a;图形图像处理开发工具&#xff1a;matlab文件大小&#xff1a;7964KB下载次数&#xff1a;29上传日期&#xff1a;2017-07-21 11:48:16上 传 者&#xff1a;long1219说明&#xff1a; PIVlab - 时间分辨粒子图像测速(PIV)工具&#xff1a;一种基于GUI…

LeetCode 1852. 每个子数组的数字种类数(滑窗)

文章目录1. 题目2. 解题1. 题目 给你一个整数数组 nums与一个整数 k&#xff0c;请你构造一个长度 n-k1 的数组 ans&#xff0c;这个数组第i个元素 ans[i] 是每个长度为k的子数组 nums[i:ik-1] [nums[i], nums[i1], ..., nums[ik-1]]中数字的种类数。 返回这个数组 ans。 示…

python读文件出现特殊字符_python- pandas :读取列中带有特殊字符的文件

添加参数na_values ’&#xff1f;’到read_csv.样品&#xff1a;import pandas as pdimport iotempu"""Date Time,a2010-01-27 16:00:00,?2010-01-27 16:10:00,2.22010-01-27 16:30:00,1.7"""df pd.read_csv(io.StringIO(temp),na_values?)p…

娜塔莉波特曼2015哈佛毕业演讲

Hello, class of 2015.I am so honest to be here today.Dean Khurana,faculty,parents,and most especially graduating students. Thank you so much for inviting me. The Senior Class Committee. it’s genuinely one of the most exciting things I’ve ever been asked …

PHP ajax 传递中文乱码,ajax+php传递中文乱码解决办法

AJAX的乱码的出现在的原因由于XMLHTTP采用的是Unicode编码上传数据&#xff0c;而一般页面采用的是gb2312,这就造成显示页面时产生乱码。而当在获取页面时的XMLHttp返回的是utf-8编码&#xff0c;这就造成了显示产生乱码。解决方法之一就是在PHP文件中显示声明为GB2312header(&…

用chrome模拟微信浏览器访问需要OAuth2.0网页授权的页面

现在很流行微信网页小游戏&#xff0c;用html5制作的小游戏移过来&#xff0c;可以放到微信浏览器中打开&#xff0c;关键是可以做成微信分享朋友圈的形式&#xff0c;大大提高游戏的传播&#xff0c;增强好友的游戏互动。 微信浏览器中打开网页游戏效果还不错&#xff0c;对手…

LeetCode 1891. 割绳子(二分查找)

文章目录1. 题目2. 解题1. 题目 给定一个整数数组 ribbons 和一个整数 k&#xff0c;数组每项 ribbons[i] 表示第 i 条绳子的长度。 对于每条绳子&#xff0c;你可以将任意切割成一系列长度为正整数的部分&#xff0c;或者选择不进行切割。 例如&#xff0c;如果给你一条长度…

公需科目必须学吗_专业技术人员一般公需科目学习的通知

根据浙江省人力资源和社会保障厅《浙江省专业技术人员继续教育学时管理办法(试行)》(浙人社发〔2016〕63号)精神&#xff0c;专业技术人员每年度应参加继续教育不得少于90学时&#xff0c;其中专业科目不少于60学时&#xff0c;行业公需和一般公需科目不少于18学时。现将专业技…

php.ini开启命名空间,Zend Framework教程之模型Model基本规则和使用方法

本文实例讲述了Zend Framework教程之模型Model基本规则和使用方法。分享给大家供大家参考&#xff0c;具体如下&#xff1a;这里讲讲Zend中的model。其实Zend中的Model处理是相当简单的。这主要得益于autoload功能。不像其它框架&#xff0c;为model定义复杂的基类。如果要定义…

LeetCode 1618. 找出适应屏幕的最大字号(二分查找)

文章目录1. 题目2. 解题1. 题目 给定一个字符串 text。并能够在 宽为 w 高为 h 的屏幕上显示该文本。 字体数组中包含按升序排列的可用字号&#xff0c;您可以从该数组中选择任何字体大小。 您可以使用FontInfo接口来获取任何可用字体大小的任何字符的宽度和高度。 FontInf…

UML类图画法及类之间几种关系

文章目录如下&#xff1a; 一、类图画法 二、类之间的几种关系&#xff1a;泛化&#xff08;Generalization&#xff09;、实现&#xff08;Realization&#xff09;、关联&#xff08;Association&#xff09;&#xff08;又分一般关联、聚合&#xff08;Aggregation&#xff…

web前端知识点太多_web前端常见知识点

csstable布局的缺点1、Table要比其它html标记占更多的字节。(延迟下载时间&#xff0c;占用服务器更多的流量资源。)2、Tablle会阻挡浏览器渲染引擎的渲染顺序。(会延迟页面的生成速度&#xff0c;让用户等待更久的时间。)3、Table里显示图片时需要你把单个、有逻辑性的图片切成…

python可变参数教学,Python函数可变参数详解

在实际使用函数时&#xff0c;可能会遇到“不知道函数需要接受多少个实参”的情况&#xff0c;不过好在 Python 允许函数从调用语句中收集任意数量的实参。例如&#xff0c;设计一个制作披萨的函数&#xff0c;我们知道&#xff0c;披萨中可以放置很多种配料&#xff0c;但无法…