​LeetCode解法汇总1379. 找出克隆二叉树中的相同节点

news/2024/7/1 2:41:52

目录链接:

力扣编程题-解法汇总_分享+记录-CSDN博客

GitHub同步刷题项目:

https://github.com/September26/java-algorithms

原题链接:. - 力扣(LeetCode)


描述:

给你两棵二叉树,原始树 original 和克隆树 cloned,以及一个位于原始树 original 中的目标节点 target

其中,克隆树 cloned 是原始树 original 的一个 副本 

请找出在树 cloned 中,与 target 相同 的节点,并返回对该节点的引用(在 C/C++ 等有指针的语言中返回 节点指针,其他语言返回节点本身)。

注意:你 不能 对两棵二叉树,以及 target 节点进行更改。只能 返回对克隆树 cloned 中已有的节点的引用。

示例 1:

输入: tree = [7,4,3,null,null,6,19], target = 3
输出: 3
解释: 上图画出了树 original 和 cloned。target 节点在树 original 中,用绿色标记。答案是树 cloned 中的黄颜色的节点(其他示例类似)。

示例 2:

输入: tree = [7], target =  7
输出: 7

示例 3:

输入: tree = [8,null,6,null,5,null,4,null,3,null,2,null,1], target = 4
输出: 4

提示:

  • 树中节点的数量范围为 [1, 104] 。
  • 同一棵树中,没有值相同的节点。
  • target 节点是树 original 中的一个节点,并且不会是 null 。

进阶:如果树中允许出现值相同的节点,将如何解答?

解题思路:

代码:

class Solution1379
{
public:
    TreeNode *getTargetCopy(TreeNode *original, TreeNode *cloned, TreeNode *target)
    {
        if (original == nullptr)
        {
            return nullptr;
        }
        if (original == target)
        {
            return cloned;
        }
        TreeNode *node = getTargetCopy(original->left, cloned->left, target);
        if (node != nullptr)
        {
            return node;
        }
        return getTargetCopy(original->right, cloned->right, target);
    }
};


http://lihuaxi.xjx100.cn/news/2157329.html

相关文章

2007-2022年上市公司企业绿色创新效率数据

2007-2022年上市公司企业绿色创新效率数据(仅结果) 1、时间:2007-2022年 2、指标:stkcd、year、绿色科技研发效率、绿色成果转化效率 3、来源:上市公司年报、上市公司社会责任报告、上市公司网站信息 4、计算方法&…

windbg托管内存泄漏排查

1、!address -summary 查看内存占用 主要查看以下两项 Heap:NT 堆 (同 !heap -s),Size过大,可能有非托管内存泄露 MEM_COMMIT:处于提交状态的内存大小,Size过大,可能有内存泄露 Heap …

Swoole简单入门教程聊天系统

Swoole可以让PHP 开发人员可以编写高性能的异步并发 TCP、UDP、Unix Socket、HTTP,WebSocket 服务。Swoole 可以广泛应用于互联网、移动通信、企业软件、云计算、网络游戏、物联网(IOT)、车联网、智能家居等领域。 一、使用Swoole实现在线聊天 建立服务端主程序 准…

利用Java实现每周二上午十点定时调用接口的方法

摘要: 在软件开发中,定时任务是一项常见的需求,特别是需要定期执行一些特定操作的场景。本文将介绍如何利用Java编程语言实现每周二上午十点定时调用接口的功能。通过使用Java中的定时任务调度工具,我们可以轻松地实现这一功能&am…

C++和C中的struct 和public有什么区别

在C和C语言中,struct 和 public 关键字分别具有不同的作用,它们的主要区别在于以下方面: struct(结构体): 在C语言中,struct 用于定义自定义的复合数据类型,可以包含不同类型的成员变…

AI时代:程序员不是失业,而是逆袭的开始

🌌引言: 在AI的浪潮之下,一个挑战性的问题逐渐浮出水面——AI的崛起是否意味着程序员的失业?这个问题不仅激发了技术界的广泛讨论,也触动了每一位程序员的心弦。然而,在这背后,我们应该看到的是…

简单使用Linux printf 将十进制转换为十六进制

在开发和排查问题过程中,有时我们需要做一些进制的转换,以下是一些快速的小技巧: 下面的是 十进制转换为十六进制: ❯ printf "0x%x\n" 100 0x64 还可以把 十六进制转为十进制: ❯ printf "%d\n&q…

SpringMVC转发和重定向

转发和重定向 1. View Resolver Spring MVC 中的视图解析器&#xff08;View Resolver&#xff09;负责解析视图。可以通过在配置文件中定义一个 View Resolver 来配置视图解析器&#xff1a; 配置文件版&#xff1a;spring-web.xml <!-- for jsp --> <bean class&q…