LeetCode(力扣)617. 合并二叉树Python

news2024/11/20 18:35:57

LeetCode617. 合并二叉树

    • 题目链接
    • 代码

题目链接

https://leetcode.cn/problems/merge-two-binary-trees/
在这里插入图片描述

代码

递归

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution:
    def mergeTrees(self, root1: Optional[TreeNode], root2: Optional[TreeNode]) -> Optional[TreeNode]:
        if not root1:
            return root2
        if not root2:
            return root1
        
        root1.val += root2.val
        root1.left = self.mergeTrees(root1.left, root2.left)
        root1.right = self.mergeTrees(root1.right, root2.right)

        return root1

迭代

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution:
    def mergeTrees(self, root1: Optional[TreeNode], root2: Optional[TreeNode]) -> Optional[TreeNode]:
        if not root1:
            return root2
        if not root2:
            return root1
        
        queue = deque()
        queue.append(root1)
        queue.append(root2)

        while queue:
            node1 = queue.popleft()
            node2 = queue.popleft()

            if node1.left and node2.left:
                queue.append(node1.left)
                queue.append(node2.left)
            if node1.right and node2.right:
                queue.append(node1.right)
                queue.append(node2.right)
            node1.val += node2.val

            if not node1.left and node2.left:
                node1.left = node2.left
            if not node1.right and node2.right:
                node1.right = node2.right
        return root1

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

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

相关文章

解决Three.js辉光背景不透明

使用此pass canvas元素的background都能看到 不过相应的辉光颜色和背景颜色不相容的地方看起来颜色会怪一些 如图 不过如果是纯色就没什么问题了 //ts-nocheck /** Author: hongbin* Date: 2023-04-06 11:44:14* LastEditors: hongbin* LastEditTime: 2023-04-06 11:49:23* De…

Node.js crypto模块 加密算法

背景 微信小程序调用飞蛾热敏纸打印机,需要进行参数sig签名校验,使用的是sha1进行加密 // 通过crypto.createHash()函数,创建一个hash实例,但是需要调用md5,sha1,sha256,sha512算法来实现实例的…

python-图片之乐-ASCII 文本图形

ASCII:一个简单的字符编码方案 pillow模块:读取图像,访问底层数据 numpy模块:计算平均值 import sys, random, argparse import numpy as np import math from PIL import Image定义灰度等级和网格 定义两种灰度等级作为全局值…

Git小白入门——了解分布式版本管理和安装

Git是什么? Git是目前世界上最先进的分布式版本控制系统(没有之一) 什么是版本控制系统? 程序员开发过程中,对于每次开发对各种文件的修改、增加、删除,达到预期阶段的一个快照就叫做一个版本。 如果有一…

EVO大赛是什么

价格是你所付出的东西,而价值是你得到的东西 EVO大赛是什么? “EVO”大赛全称“Evolution Championship Series”,是北美最高规格格斗游戏比赛,大赛正式更名后已经连续举办12年,是全世界最大规模的格斗游戏赛事。常见…

Python Qt学习(四)Radio Button

代码 # -*- coding: utf-8 -*-# Form implementation generated from reading ui file D:\Works\Python\Qt\qt_radiobutton.ui # # Created by: PyQt5 UI code generator 5.15.9 # # WARNING: Any manual changes made to this file will be lost when pyuic5 is # run again.…

2023年高教社杯 国赛数学建模思路 - 案例:异常检测

文章目录 赛题思路一、简介 -- 关于异常检测异常检测监督学习 二、异常检测算法2. 箱线图分析3. 基于距离/密度4. 基于划分思想 建模资料 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 一、简介 – 关于异常…

(笔记四)利用opencv识别标记视频中的目标

预操作: 通过cv2将视频的某一帧图片转为HSV模式,并通过鼠标获取对应区域目标的HSV值,用于后续的目标识别阈值区间的选取 img cv.imread(r"D:\data\123.png") img cv.cvtColor(img, cv.COLOR_BGR2HSV) plt.figure(1), plt.imshow…

科技助力图书馆新趋势:机器人“图书管理员”展风采

原创 | 文 BFT机器人 PART1 机器人“图书管理员”横空出世 随着科技的日新月异,知识的获取变得更加方便快捷,图书馆不再只是借阅书籍的场所,其渐渐演变成了人们社交、休闲、学习的不二之选。在此场景下,“智能化图书馆”的概念深…

gitbash的使用

目录 1. 安装git 2. gitbash配置 2.1 设置 2.2 生成key 2.3 初始化本地仓库 2.4 clone远程仓库的工程到本地 2.5 本地修改提交 1. 安装git 默认安装。 2. gitbash配置 2.1 设置 打开gitbash,设置用户名和邮箱: git config --global user.name &…

IP协议分片重组问题

分片是什么&&为什么会有分片 IP数据报分片的主要目的是为了防止IP数据报文长度超过下一跳链路MTU(最大传输单元)。 数据链路层之MTU 数据链路层中有一个东西叫做MTU(最大传输单元),它的作用主要是控制上层给的数据报不要太大&#…

算法通关村第8关【白银】| 二叉树的深度和高度问题

1.最大深度问题 思路:递归三部曲 第一步:确定参数和返回值 题目要求求二叉树的深度,也就是有多少层,需要传递一个root从底层向上统计 int maxDepth(TreeNode root) 第二步:确定终止条件 当递归到null时就说明到底了…

实训笔记8.28

实训笔记8.28 8.28笔记一、大数据计算场景主要分为两种1.1 离线计算场景1.2 实时计算场景 二、一般情况下大数据项目的开发流程2.1 数据采集存储阶段2.2 数据清洗预处理阶段2.3 数据统计分析阶段2.4 数据挖掘预测阶段2.5 数据迁移阶段2.6 数据可视化阶段 三、纯大数据离线计算项…

最新企业网盘产品推荐榜发布

随着数字化发展,传统的文化存储方式已无法跟上企业发展的步伐。云存储的出现为企业提供了新的文件管理存储模式。企业网盘作为云存储的代表性工具,被越来越多的企业所青睐。那么在众多企业网盘产品中,企业该如何找到合适的企业网盘呢&#xf…

汽车类 ±0.25°C SPI 温度传感器,TMP126EDBVRQ1、TMP126EDCKRQ1、TMP127EDBVRQ1引脚配置图

一、概述 TMP126-Q1 是一款精度为 0.25C 的数字温度传感器 , 支持的环境温度范围为 -55C 至 175C 。TMP126-Q1 具 有 14 位 ( 有符号 ) 温度分辨率(0.03125C/LSB),并且可在 1.62V 至 5.5V 的电源电压范围内工作。TMP126-Q1 具有转…

Python爬虫网络安全:优劣势和适用范围分析

各位Python程序猿大佬们!在当今数字化时代,网络安全是至关重要的。保护你的网络通信安全对于个人和组织来说都是非常重要的任务。在本文中,我将与你一起探讨Python网络安全编程中的代理、虚拟专用网络和TLS这三个关键概念,分析它们…

「2024」预备研究生mem-分析推理强化: 分组型 (上)

一、分析推理强化: 分组型 (上) 二、课后题

助力乡村振兴 泰格智能AI英语携手中国善网在行动

近日,泰格智能AI英语与中国善网宣布达成战略合作,共同投身乡村教育事业。此次合作旨在通过中国善网的会员公益机构,向乡村英语老师和学生捐赠共12000个英语教育智能AI训练产品账号,其总价值超过350万人民币。这一举措是为了让乡村…

为何直线导轨要保持日常清洁?

随着时代的发展,已逐步从传统的工业发展模式发展到工业自动化,直线滑轨在工业生产中得到了广泛的应用,大大提高了生产效率,带动了经济效益的增长。 众所周知,想要直线导轨的使用达到预期的效果,日常的保养和…