当前位置: 首页 > news >正文

LeetCode--HOT100题(39)

目录

  • 题目描述:101. 对称二叉树(简单)
    • 题目接口
    • 解题思路
    • 代码
  • PS:

题目描述:101. 对称二叉树(简单)

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

LeetCode做题链接:LeetCode-对称二叉树

示例 1:
在这里插入图片描述

输入:root = [1,2,2,3,4,4,3]
输出:true

示例 2:
在这里插入图片描述

输入:root = [1,2,2,null,3,null,3]
输出:false

提示:

树中节点数目在范围 [1, 1000] 内
-100 <= Node.val <= 100

进阶: 你可以运用递归和迭代两种方法解决这个问题吗?

题目接口

/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode() {}*     TreeNode(int val) { this.val = val; }*     TreeNode(int val, TreeNode left, TreeNode right) {*         this.val = val;*         this.left = left;*         this.right = right;*     }* }*/
class Solution {public boolean isSymmetric(TreeNode root) {}
}

解题思路

递归:
主要思路:

  • 左子树的左孩子 == 右子树的右孩子
  • 左子树的右孩子 == 右子树的左孩子

步骤:

  • 递归比较左子树的左孩子,右子树的右孩子以及左子树的右孩子,右子树的左孩子
  • 返回条件:当两个结点不相等,或者都为空

代码

/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode() {}*     TreeNode(int val) { this.val = val; }*     TreeNode(int val, TreeNode left, TreeNode right) {*         this.val = val;*         this.left = left;*         this.right = right;*     }* }*/
class Solution {public boolean isSymmetric(TreeNode root) {if(root==null) {return true;}//调用递归函数,比较左节点,右节点return dfs(root.left,root.right);}boolean dfs(TreeNode left, TreeNode right) {//递归的终止条件是两个节点都为空//或者两个节点中有一个为空//或者两个节点的值不相等if(left==null && right==null) {return true;}if(left==null || right==null) {return false;}if(left.val!=right.val) {return false;}//再递归的比较 左节点的左孩子 和 右节点的右孩子//以及比较  左节点的右孩子 和 右节点的左孩子return dfs(left.left,right.right) && dfs(left.right,right.left);}
}

成功!
在这里插入图片描述

PS:

感谢您的阅读!如果您觉得本篇文章对您有所帮助,请给予博主一个喔~

http://www.lryc.cn/news/139373.html

相关文章:

  • “车-路-网”电动汽车充电负荷时空分布预测(matlab)
  • 【核磁共振成像】方格化重建
  • JAVA中时间戳和LocalDateTime的互转
  • 无涯教程-进程 - 创建终止
  • LLMs参考资料第一周以及BloombergGPT特定领域的训练 Domain-specific training: BloombergGPT
  • LeetCode字符串数组最长公共前缀
  • Git gui教程---第八篇 Git gui的使用 创建一个分支
  • Docker修改daemon.json添加日志后无法启动的问题
  • QT6编译的文件分布情况
  • 2023中国算力大会 | 中科驭数加入DPU推进计划,探讨DPU如何激活算网融合新基建
  • leetcode 115. 不同的子序列
  • gradio应用transformer模块部署生成式人工智能应用程序
  • 【目标检测】“复制-粘贴 copy-paste” 数据增强实现
  • 深度学习知识总结2:主要涉及深度学习基础知识、卷积神经网络和循环神经网络
  • Spring Boot 集成 WebSocket 实现服务端推送消息到客户端
  • vr游乐场项目投资方案VR主题游乐馆互动体验
  • chrom扩展开发配合百度图像文字识别实现自动登录(后端.net core web api)
  • 香港服务器怎么打开SSH
  • 【LeetCode】437.路径总和Ⅲ
  • Mybatis-plus中操作JSON字段
  • 第十五课、Windows 下打包发布 Qt 应用程序
  • 【php】windows下php运行已有php web项目环境配置教程
  • 【mybatis】 mybatis在mysql 更新update 操作 更新时间字段按照年月日时分秒格式 更新为当前时间...
  • C++动态规划经典案例解析之合并石子
  • go MongoDB
  • 算法与数据结构(八)--优先队列
  • React 全栈体系(三)
  • 腾讯云下一代CDN -- EdgeOne加速MinIO对象存储
  • GitLab-CI 指南
  • MyBatis的核心技术掌握,简单易懂(上)