相同的树-力扣

这道题目与堆成二叉树题目很相似,对称二叉树是每次传入的节点组合是 《左子树的左节点 和 右子树的 右节点》 《左子树的右节点 和 右子树的左节点》, 而这道题就更加简单,传入两棵树的左节点和右节点即可。

/*** 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:bool isSameTree(TreeNode* p, TreeNode* q) {if(p == nullptr && q == nullptr){return true;}else if(p == nullptr || q == nullptr){return false;}else if(p->val != q->val){return false;}bool l_tree = isSameTree(p->left, q->left);bool r_tree = isSameTree(p->right, q->right);return l_tree && r_tree;}
};

尝试使用迭代法来完成这道题目,通过队列每次出队两个元素,并对其进行比较,从而判断两个树是否相等。
尽管代码思路很简单,但在实现时,一开始习惯性的写成了层序遍历那样,在将子节点入队时,判断了子节点不为空才让子节点入队,导致出现误判的情况。这里即使是空节点,也是需要入队进行比较的,因为一个树的这个节点为空,但另一棵树对应的这个节点可不一定。


class Solution {
public:bool isSameTree(TreeNode* p, TreeNode* q) {queue<TreeNode*> que;if(p != nullptr && q != nullptr){que.push(p);que.push(q);}else if(p == nullptr && q == nullptr){return true;}else{return false;}while(!que.empty()){TreeNode* node1 = que.front();que.pop();TreeNode* node2 = que.front();que.pop();if(node1 == nullptr && node2 == nullptr){continue;}if(node1 == nullptr || node2 == nullptr){return false;}if(node1->val != node2->val){return false;}que.push(node1->left);que.push(node2->left);que.push(node1->right);que.push(node2->right);}return true;}
};

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

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

相关文章

[React]useEffect中return函数执行时机

已知在组件卸载时会执行return函数&#xff0c;其实在依赖项变更时也会执行。 import { useEffect, useState } from react;export default function HomePage() {const [count, setCount] useState(0);useEffect(() > {console.log(effect, count);return () > {conso…

【云原生Kubernetes项目部署】k8s集群+高可用负载均衡层+防火墙

目录 环境准备 拓朴图 项目需求 一、Kubernetes 区域可采用 Kubeadm 方式进行安装 1.1所有节点master、node01、node02 1.2所有节点安装docker 1.3所有节点安装kubeadm&#xff0c;kubelet和kubectl 1.4部署K8S集群 1.4.1复制镜像和脚本到 node 节点&#xff0c;并在 …

Excel数据自动检测,语音报警VBA代码,语音提醒

要实现这个功能&#xff0c;你可以使用以下VBA代码&#xff1a; 1. 首先&#xff0c;在Excel中插入一个ActiveX控件&#xff08;如"Microsoft Sound Control 6.0 (Spinner.Sound)"&#xff09;&#xff0c;并将其命名为"SoundControl"。 2. 然后&#xff0…

html--酷炫背景引导主页

<!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><title>ZZVIPS酷炫背景引导主页</title><meta name"viewport" content"widthdevice-width,initial-scale1,maximum-scale1,user-scala…

Python 模块完全指南:从基础语法到高级应用的全方位解析

基本语法 在 Python 中&#xff0c;模块是一种包含 Python 代码的文件&#xff0c;用于组织和重用代码。模块可以包含变量、函数、类等&#xff0c;并且可以被其他 Python 程序导入和使用。 1. 导入模块 要使用一个模块&#xff0c;需要使用 import 关键字将其导入到当前的 …

jquery.datetimepicker控件不弹出的问题

项目场景&#xff1a; CRM项目&#xff0c;在项目中涉及日期类输入框&#xff0c;打算采用平常见到的点击选择日期的方式。在浏览了网页后&#xff0c;目前比较好的解决方案是jquery.datetimepicker和flatpicker两种&#xff0c;flatpicker的缺点是官网是英文版的&#xff0c;…

Android 13.0 Launcher3单层模式workspace中app列表页排序功能实现

1.概述 在13.0的定制化开发中,对于Launcher3的功能定制也是好多的,而对于单层app列表页来说排序功能的开发,也是常有的功能这就需要了解加载app数据的流程,然后根据需要进行排序就可以了,接下来就来实现这个功能 如图: 2. Launcher3单层模式workspace中app列表页排序功能…

【漏洞复现】Apache OFBiz 路径遍历导致RCE漏洞(CVE-2024-36104)

0x01 产品简介 Apache OFBiz是一个电子商务平台&#xff0c;用于构建大中型企业级、跨平台、跨数据库、跨应用服务器的多层、分布式电子商务类应用系统。是美国阿帕奇(Apache)基金会的一套企业资源计划(ERP)系统。该系统提供了一整套基于Java的Web应用程序组件和工具。 0x02 …

EntitiesSample_7. EnableableComponents

该示例只要表达的是关闭和激活组件&#xff0c;之前的示例我们知道对于一个ECS组件需要继承IComponent接口,说明这个是一个组件&#xff0c;数组的话需要继承IBufferElementData接口&#xff0c;说明这个是一个数组元组组件&#xff0c;如果需要组件的激活控制&#xff0c;结构…

How to: Add and Customize the Ribbon Skin List and Skin Gallery

皮肤列表和皮肤库允许用户选择皮肤。本文介绍如何在功能区中显示“皮肤列表”或“皮肤库”并对其进行自定义。 DevExpress演示中心中的大多数应用程序都允许您选择皮肤。例如&#xff0c;运行XtraGrid演示并导航到皮肤功能区页面以更改当前皮肤。 在功能区UI中显示皮肤列表或…

谁能赢?阿里的通义 VS 百度的文心

关注卢松松&#xff0c;会经常给你分享一些我的经验和观点。 国产AI大模型领域&#xff0c;当前有两大阵营&#xff1a; (1)以百度文心一言为代表的闭源大模型。李彦宏曾说过&#xff1a;AI大模型开源意义不大&#xff0c;百度绝不抢开发者饭碗。 (2)以阿里通义AI为代表的开…

Python怎么配置环境变量:深度探索与实战指南

Python怎么配置环境变量&#xff1a;深度探索与实战指南 在Python编程的世界中&#xff0c;环境变量的配置是一个至关重要的步骤。它不仅影响着Python解释器的运行&#xff0c;还关系到各种第三方库和工具的使用。本文将带你深度探索如何配置Python的环境变量&#xff0c;并为…

猜排列 题解

推荐在 cnblogs 上阅读 猜排列 题解 差 eps 步想到正解。 题意描述 有 m m m 个长为 n n n 序列 a 1 , … , a n a_1,\dots,a_n a1​,…,an​&#xff0c;还有 m m m 个长为 n n n 序列 b 1 , … , b n b_1,\dots,b_n b1​,…,bn​。 其中 b i b_i bi​ 是由 a i …

ipc-test.bk and mmap is also similar.

1.config tab-4 vi /etc/virc或者 1.配置文件中如果要添加注释&#xff0c;不能用#&#xff0c;要使用” 2.u命令回退上次的操作 3.复制不带行号&#xff0c;在/etc/virc的末尾添加se mousea " add tab spaceset ts4 "只设置这个就能把tab缩进为4&#xff0c;加上…

Ubuntu24.04基本配置

目录 0. 前言1. 连接网络2. 更新源3. 安装并配置vim4. 设置用户sudo免密5. 同步双系统时间6. 设置终端颜色主题7. 设置中文输入法8. 调整Dock位置等9. 设置Grub10. 其它美化设置10.1 夜灯10.2 壁纸10.3 终端加强gnome-tweaks10.4 字体 11. 常用工具11.1 邮箱配置11.2 翻译工具1…

如何微调 Llama 3 进行序列分类?

节前&#xff0c;我们星球组织了一场算法岗技术&面试讨论会&#xff0c;邀请了一些互联网大厂朋友、参加社招和校招面试的同学. 针对算法岗技术趋势、大模型落地项目经验分享、新手如何入门算法岗、该如何准备、面试常考点分享等热门话题进行了深入的讨论。 汇总合集&…

图像滤波算法 python

1. 平均滤波 (Mean Filtering) 平均滤波是一种简单的线性滤波方法&#xff0c;通过取邻域内像素的平均值来平滑图像&#xff0c;从而去除噪声。 import cv2 import numpy as np# 读取图像 image cv2.imread(image.jpg)# 应用平均滤波 mean_filtered cv2.blur(image, (5, 5)…

极域卸载不干净导致无法重新安装问题:独家解决方案

文章目录 一、问题二、解决1.网上常规方法2.本贴特殊之处 三、致谢 一、问题 极域卸载不干净&#xff0c;导致无法重新安装。 二、解决 1.网上常规方法 1.regedit命令注册表删除 topdomain、mythware、{5FB4EEDF-6A79-45C3-B049-EF327CA03FCD} 2.删除极域对应tmp文件 网上…

迫在眉睫的革命:通用人工智能(AGI)与超级智能的竞赛

技术领域正处于一场将重新定义人类能力和理解边界的革命边缘。随着我们站在这一新时代的十字路口,开发通用人工智能(AGI)及其随后向超级智能的飞跃,不仅仅是一项科学努力,而是我们历史上的一个关键时刻。在这篇博客文章中,我们将深入探讨Leopold Aschenbrenner的文件《态…

Go微服务: 分布式之通过可靠消息实现最终一致性

通过可靠消息实现最终一致性 可靠消息&#xff0c;就是靠普消息&#xff0c;还是基于之前的这个案例 比如这个订单服务&#xff0c;无论你是先发送消息&#xff0c;还是先新建订单&#xff0c;它其实都是发送的不可靠消息就是说如果这个消息&#xff0c;像mysql事务那样&#…