java--数据结构--二叉树的最近公共祖先

【RViz2】导入urdf模型时报错:Could not load resource xxx,Unable to open file xxx,Error retrieving file xxx 初学ROS2,想要在RViz2中显示urdf模型。其中.urdf文件引用了外部的meshes文件夹。 阅读详情
1.若是二叉搜索树

思路:
如果p,q 比root小, 则LCA必定在左子树;如果p,q 比root大, 则LCA必定在右子树;若一小一大,则LCA是root

 /**
  * Definition for a binary tree node.
  * public class TreeNode {
  *     int val;
  *     TreeNode left;
  *     TreeNode right;
  *     TreeNode(int x) { val = x; }
  * }
  */
 public class Solution {
     public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) {

         if(root.val > p.val && root.val > q.val) {
             return lowestCommonAncestor(root.left,p,q);
         }else if(root.val < p.val && root.val < q.val) {
             return lowestCommonAncestor(root.right,p,q);
         }else {
             return root;
         }
     }
 }
2.若是普通二叉树

思路一:
遍历判断两个node是否在左右子树中
一般递归都分为两块返回值;
第一块返回值(开头):
针对l或者r的返回,也就是标记,我自己称为小返回
第二块返回值(结尾):
l和r已经获取完毕,对上一层的返回,我自己称为大返回

public class Solution {
    public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) {
        // 左右子树探索时发现目标节点,则通过返回值标记
        if(root == null || p == root || q == root) {
            return root;
        }

        // 查看左子树中是否有目标结点,没有为null
        TreeNode l = lowestCommonAncestor(root.left,p,q);
        // 查看右子树中是否有目标结点,没有为null
        TreeNode r = lowestCommonAncestor(root.right,p,q);

        //都不为空,说明做右子树都有目标结点,则公共祖先就是本身
        if(l!= null && r!= null) {
            return root;
        }
        // 其他情况,则要继续向上标记,显示此节点下边有目标节点
        return l != null?l:r;
    }
}

思路二:
1.不是BST,则先遍历节点, 找到p,q. 记录下从root到该几点的路径.
2.比较路径,最后一个相同的节点便是LCA.

基于网关实现不同网段S7-1200 CPU的通信方法 在A网段的计算机上ping B网段的计算机:在A网段的计算机上使用ping命令,向B网段的计算机发送数据包。在B网段的计算机上ping A网段的计算机:同样地,在B网段的计算机上使用ping命令,向A网段的计算机发送数据包。数据包也会经过路由器进行转发,最终到达A网段的计算机。配置路由器:在路由器上配置两个网段的IP地址和子网掩码,并设置路由表,使得路由器可以将A网段和B网段之间的数据进行转发。确定两个网络之间的路由器:假设需要将A网段和B网段进行通信,需要在A、B两个网段之间设置一台路由器。 阅读详情

相关推荐

大样本EEG公共数据集汇总

描述: OpenNeuro平台包含多个认知障碍相关的EEG数据集,例如针对轻度认知障碍(MCI)或阿尔茨海默病(AD)的研究。描述: 天普大学医院EEG语料库包含大量临床EEG记录,可通过元数据筛选出与认知障碍相关的片段(如诊断标签包含dementia或MCI)。描述: ADNI主要提供多模态神经影像数据(MRI/PET),但部分合作研究整合了EEG数据。样本量: 部分数据集包含100+被试(例如结合MRI与EEG的多模态数据)。样本量:30,000+ EEG记录(持续更新,全球最大临床EEG数据库)。

谁人打的太极拳的博客 1764

二叉树的最近公共祖先【Java实现】

现有一棵n个结点的二叉树(结点编号为从0到n-1,根结点为0号结点),求两个指定编号结点的最近公共祖先。注:二叉树上两个结点A、B的最近公共祖先是指:二叉树上存在的一个结点P,使得P既是A的祖先,又是B的祖先,并且P需要离根结点尽可能远(即层号尽可能大)。

Infinity_and_beyond的博客 1196

Zenoh:统一数据平面协议,重塑物联网与边缘计算架构

在分布式系统与物联网领域,数据通信与处理常面临协议割裂的挑战。传统方案如MQTT、Kafka、gRPC等,分别针对发布/订阅、流处理和RPC等不同场景,导致架构复杂、集成成本高。其核心问题在于未能统一处理“运动中数据”(Data in Motion)与“静止中数据”(Data at Rest)。Zenoh协议通过创新的“Key-Value”寻址与“Selector”查询语言,将发布/订阅、存储、查询和计算四种核心操作融合进单一协议,构建了统一的抽象层。这种设计实现了极低的协议开销(仅5字节头部)和地理分布式

weixin_29597551的博客 290

Java实现:最近公共祖先节点

标题:Java实现:最近公共祖先节点 一、方法一 ,很容易想到,但不是最优解 思想:找到两个满足条件的节点,得到他们的祖先节点 1).使用非递归的后序遍历实现【因为先序遍历,直接删节点就行了,不需要后序遍历那么的麻烦,中序也同样】 2)eg:栈中为:1-> 2 -> 3 那么说此节点数组中存放的为3,2,1因为 这样才是最近的公共祖先节点【注意:要包含自身】 3)最后通过两个for循环,得到TreeNode /* * 使用后序遍历,得到两个链表 * * 执行用时:44 ms,

weixin_45986454的博客 727

求一个点到任意两个点所在直线距离 C#代码公式

求点C(X0,Y0) 到点A(x1,y1)和点B(x2,y2)所在直线的距离 1.已知任意两个点,求这两个点所在直线 已知点A(x1,y1),点B(x2,y2) 设直线上另外任意一个点为(x,y) 那么 (x-x1)/(y-y1) = (x2-x1)/(y2-y1); 整理后得方程: (y2-y1)x + (x1-x2)y + (y1-...

qq_29434987的博客 4492

CubeMX实战:ETH+LWIP+FreeRTOS网络工程从零搭建与AC6编译优化

本文手把手教你使用STM32CubeMX从零搭建集成以太网(ETH)、LWIP协议栈和FreeRTOS的嵌入式网络工程。文章详细解析了外设配置、协议栈调优、任务规划等关键步骤,并重点分享了如何解决ARM Compiler 6(AC6)的兼容性问题,实现编译速度与稳定性的双重提升,助你快速构建稳定的网络应用原型。

n2o3p4的博客 410

Java——二叉树的最近公共祖先及二叉搜索树介绍

给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个节点 p、q,最近公共祖先表示为一个节点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”提示:树中节点数目在范围 [2, 105] 内。 -109

申俏雅的博客 1094

ROS2进程内通信:零拷贝Intra-Process原理与实战

Intra-Process通信是ROS2实现低延迟节点间数据交换的核心机制,其本质是通过C++17智能指针与零拷贝共享内存,在同一进程内绕过序列化、系统调用和上下文切换。相比传统DDS跨进程通信,它将`geometry_msgs::Twist`类消息延迟从42μs降至0.8μs,显著提升机器人实时控制性能。该技术并非自动启用,需满足同执行器、QoS严格匹配、内存所有权明确三大约束,适用于机械臂控制、视觉SLAM、图像处理流水线等对端到端延迟敏感的场景。本文聚焦ROS2原生Intra-Process通讯的原理

weixin_30619101的博客 364

java数据结构与算法之最近公共祖先问题

①、问题描述 给你两个节点node1,node2,这两个节点都在树上,再给你一个节点head,head表示二叉树的头节点,请返回他们【最近的公共祖先】 ②、核心点分析 如果我们能顺着某个node向上找到他的父亲节点就好了。如果能从某个节点开始向上找到他的parent节点,那么这个题就和单链表相交问题一样了,变得非常简单了 所以,对于这种二叉树结构,我们只要知道【二叉树的头节点】,那么我们就可以【遍历】这棵二叉树。然后利用【HashMap结构】来存放每个节点的父子关系,这样的话,对于每一个节点,我们都可以找

wenpan的博客 868

coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?

🏆本文收录于《优快云问答解惑-专业版》专栏,主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!

**My Coding Family** 2670

OpenClaw更新后变傻了?一分钟教你快速恢复(OpenClaw更新版本后降智、缺少权限问题的解决方案)

OpenClaw 版本更新后出现降智问题,AI不再执行具体任务。本文详细分析问题原因,提供最简便的解决方案✅

XiaoqiangClub的博客 3886

java求最近的共同祖先节点_二叉树中两个节点的最近公共祖先

一、递归版本思想:假设根结点为root,其中给定的两个结点分别为A和B,它们分别都不为null。如果当前结点p为null,那么直接返回null,如果当前结点p是给定的结点中的其中一个结点,那么直接返回当前结点p(如果p是根结点,程序一次就返回了,下面的递归也不会出现)。如果当前节点不是A和B中的一个,那么需要分别去查找p的左右子树,看看是否包含A或者B,查询左右子树后,如果查询左子树和查询右子树的...

weixin_33338498的博客 800

【OpenClaw从入门到精通】第60篇:多智能体协同实战——用“龙虾”搭建你的数字员工团队(2026企业版)

2026年AI Agent企业落地的核心趋势,正从“单Agent单兵作战”转向“多智能体协同组网”。本文以全球开发者先锋大会“百虾大战”真实案例为蓝本,深度拆解OpenClaw多智能体协同的技术内核——三层解耦架构(模型层-技能层-网关层),系统搭建包含项目经理、架构师、执行者、质量把关者的4大核心Agent团队。通过三种主流协作架构对比、全链路配置代码实操、故障自愈实战演练,结合电商新品上架虚拟场景全流程演示,解决企业多Agent部署中的权限隔离、任务协同、运维自治三大核心痛点。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 770

Java数据结构-二叉树的最近公共祖先

利用栈来记录路径上的节点。在回溯过程中,会将不在路径上的节点从栈中弹出,最终实现找到从根节点到目标节点的路径并返回是否找到的结果。在求解二叉树的最近公共祖先问题时,获取节点路径是一个重要的辅助手段,通常可以通过获取两个节点的路径,然后从路径中找出最近公共祖先。

linhai166025的博客 1050

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

java leetcode之[数据结构 中等]236. 二叉树的最近公共祖先

题目的链接在这里:https://leetcode-cn.com/problems/lowest-common-ancestor-of-a-binary-tree/ 目录题目大意一、示意图二、解题思路递归 题目大意 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个节点 p、q,最近公共祖先表示为一个节点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。” 一、示意图 二、解题思路 递归 递归

wzw的博客 120

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

数据结构-寻找二叉树两节点的最近公共祖先(Java)

寻找最近公共祖先 思路 代码实现

淡沫初夏zz的博客 1691

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

【算法训练-二叉树 五】【最近公共祖先】二叉树的最近公共祖先、二叉搜索树的最近公共祖先

废话不多说,喊一句号子鼓励自己:程序员永不失业,程序员走向架构!本篇Blog的主题是【二叉树的节点查找】,使用【二叉树】这个基本的数据结构来实现,这个高频题的站点是:[**CodeTop**](https://codetop.cc/home),筛选条件为:**目标公司+最近一年+出现频率排序**,由高到低的去[**牛客TOP101**](https://www.nowcoder.com/exam/oj?page=1&tab=%E7%AE%97%E6%B3%9

MaoLin Tian's Blog 863

java数据结构与算法刷题-----LeetCode236. 二叉树的最近公共祖先

【代码】java数据结构与算法刷题-----LeetCode236. 二叉树的最近公共祖先。

殷志鹏的博客 1162

【剑指 Offer】68. 二叉树的最近公共祖先

1 二叉搜索树的最近公共祖先 解析 若 root 是 p,q 的 最近公共祖先 ,则只可能为以下三种情况之一: p 和 q 在 root 的子树中,且分列 root 的 异侧(即分别在左、右子树中); p=root 且 q 在 root 的左或右子树中; q=root 且 p 在root 的左或右子树中; 参考代码(Java) public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) { // 最近公共祖

Awt_FuDongLai的博客 1870

236. 二叉树的最近公共祖先

本文介绍了如何在一个二叉树中找到两个节点的最低公共祖先(LCA)。通过递归遍历树的每个节点,计算以当前节点为根的子树中包含目标节点的数量。当首次发现某个节点的子树中同时包含这两个节点时,该节点即为所求的最低公共祖先。文章提供了Java代码实现,其中method函数用于递归计算子树中包含目标节点的数量,并在首次找到时记录该节点。这种方法利用了树的结构和递归的特性,确保能够高效地找到最低公共祖先。

release_lonely的博客 203

二叉树的最近公共祖先,用java实现;在计算机中有哪些应用场景?

分别位于当前节点的左右两侧,因此当前节点就是它们的最近公共祖先。如果只有一个子树返回了非空值,则返回该子树的结果。在Java中,可以通过递归或迭代的方式实现查找二叉树的最近公共祖先。这些应用场景展示了二叉树的最近公共祖先在计算机科学中的广泛应用和重要价值。,如果是,则直接返回根节点。然后,递归地在左子树和右子树中查找。如果左子树和右子树都返回了非空值,说明。方法首先判断根节点是否为空,或者是否等于。方法接收三个参数:二叉树的根节点。,以及需要查找的两个节点。

qq_43664361的博客 662

代码随想录第18天 | 530.二叉搜索树的最小绝对差、 501.二叉搜索树中的众数 、 236. 二叉树的最近公共祖先

530.二叉搜索树的最小绝对差。236. 二叉树的最近公共祖先。501.二叉搜索树中的众数。

2301_80177354的博客 196

Java,实现得到二叉树的最近公共祖先节点

标题:Java,实现得到二叉树的最近公共祖先节点 一、方法四种: 首先做这个题目,感觉知道这个会比较好: //供参考的后序迭代输出二叉树的所有节点 //供参考的后序迭代输出二叉树的所有节点 public void postOrder(TreeNode head){ if(head == null){ return ; } Deque<TreeNode> s = new LinkedList<>(); s.push(head); while(!s.isEmpty()){

weixin_45986454的博客 653

Java数据结构第十五期:走进二叉树的奇妙世界(四)

我们以中序遍历的数组的第一个元素ibegin,最后一个元素iend之间找到二叉树的根,因为是前序遍历,先有的左树再有的右树,那么左边的区间就会是(9,x) = (ibegin,iend),iend = iroot-1;再继续往下走,如果root.right为空,正好符合上面2结点的情况:2的左边走完,右边为空,直接return加右括号。通过上图分析:当1的左子树不为空,就用一个(,2的左子树也不为空,也使用一个(,4再往下递归返回null,直接)闭合;当root的左树不为空,右树为空,也加右括号闭合。

2401_85198927的博客 1374

NC102 在二叉树中找到两个节点的最近公共祖先

在二叉树中找到两个节点的最近公共祖先

weixin_44236424的博客 108

days18

236. 二叉树的最近公共祖先。530.二叉搜索树的最小绝对差。501.二叉搜索树中的众数。

indexyjk的博客 136
上一篇: java--数据结构--链表
下一篇: java--数据结构--二叉树根节点到指定节点的路径
github_34514750
博客等级 码龄11年 44粉丝 198原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值