对称二叉树-101

news/2024/10/3 10:41:14

题目描述

给你一个二叉树的根节点 root , 检查它是否轴对称。

解题思路

这里我们相当于是比较根节点左右两颗子树,我们依次向左右子树的左右两个方向进行遍历,我们比较左子树的左孩子和右子树的右孩子,左子树的右孩子和右子树的左孩子,这里如果不好理解可以看下面这个图片,如果两个子节点不为空且值相等我们就继续想下一层遍历,直至节点为空返回true,整个结果也就为true了。

代码实例

class Solution {public boolean isSymmetric(TreeNode root) {if(root.left==null && root.right==null){return true;}return judge(root.left,root.right);}public boolean judge(TreeNode left,TreeNode right){//判断不符合题目条件的,我们可以直接返回不用再继续向下遍历了if(left==null && right==null){return true;}else if(left==null && right!=null){return false;}else if(right==null && left!=null){return false;}else if(left.val!=right.val){return false;}boolean left_result=judge(left.left,right.right);boolean right_result=judge(left.right,right.left);return left_result && right_result;}}

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

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

相关文章

数组更加深入的学习

1.浅了解java数组原理 可以形象的认为java中有“栈”和“堆”这两个东西,栈用于存放声明的数组,而堆则用于存放数组的赋值 刚声明完的数组没有任何作用,必须要对其赋值才有意义2.数组的三种初始化静态初始化:将数组的值在声明时提前写好并且值固定不变 动态初始化:声明并创…

anime.js 网页动画库,轻松实现网页数字滚动效果

anime.js下载地址:https://raw.githubusercontent.com/juliangarnier/anime/master/lib/anime.min.js

vue学习---vue内置组件---keep-alive

什么是keep-alive?​ keep-alive是vue的一个 内置组件,能将不活动的组件实例保存在内存中,而不是直接将其销毁,它是一个抽象组件,不会被渲染到真实 DOM 中。keep-alive主要用于保存组件的渲染状态,避免组件反复创建和渲染,有效提升系统性能。keep-alive核心LRU算法 LRU(…

【闲话】OI计划

教练让的。顺手水一期闲话嘻嘻分数目标 1.1 初赛:S组60 1.2 复赛:S组150+ 1.3 NOIP:150+规划 2.1 9.1~9.10:复习图论,做完最短路题单 2.2 9.10~9.20:复习组合数学和代码阅读 2.3 9.22~10.25:学习数论、复习线段树等常用模板 2.4 10.27~11.29:总复习,背诵《骗分导论》(…

C# 定时器 Timer 如何精确到 1-2 毫秒以内

最近在排查项目OTA的一个问题,触发了一毫秒或者2毫秒执行一次进程间通信的,导致通信阻塞的问题。这样就需要用到模拟触发1ms或者2ms触发事件。这让我第一时间想到了C#的定时器。由于我们项目用到的框架是基于.NETFramwork4.8的,所以我就建立了一个.NETFramwork4.8的WPF Demo…

浅谈 Occupancy

01 研究意义 Occupancy Network算法因为可以更好的克服感知任务中存在的长尾问题,以及更加准确表达物体的几何形状信息,而受到来自工业界和学术界越来越广泛的关注。 Occupancy Network算法本质上是一个3D分割任务,通过将想要感知的3D空间划分成固定大小的体素网格,并让算法…

BEVFormer开源算法逐行解析(一):Encoder部分

写在前面: 对于BEVFormer算法框架的整体理解,大家可以找到大量的资料参考,但是对于算法代码的解读缺乏详实的资料。因此,本系列的目的是结合代码实现细节、在tensor维度的变换中帮助读者对算法能有更直观的认识。 本系列我们将对BEVFormer公版代码(开源算法)进行逐行解析…

MySQL的索引原理及使用

B+树的最底层叶子节点包含了所有的索引项。从图上可以看到,B+树在查找数据的时候,由于数据都存放在最底层的叶子节点上,所以每次查找都需要检索到叶子节点才能查询到数据。所以在需要查询数据的情况下每次的磁盘的IO跟树高有直接的关系,但是从另一方面来说,由于数据都被放…