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

【力扣】[Java版] 刷题笔记-101. 对称二叉树

题目:101. 对称二叉树

给你一个二叉树的根节点 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 void leftTravel(TreeNode root, List<Integer> res) {if (root == null) {res.add(null);return;}res.add(root.val);leftTravel(root.left, res);leftTravel(root.right, res);}public void rightTravel(TreeNode root, List<Integer> res) {if (root == null) {res.add(null);return;}res.add(root.val);rightTravel(root.right, res);rightTravel(root.left, res);}public boolean isSymmetric(TreeNode root) {if (root == null) {return true;}if (root.left == null && root.right == null) {return true;}// 左子树 根 左 右TreeNode left = root.left;List<Integer> resL = new ArrayList();leftTravel(left, resL);// 右子树 根 右 左TreeNode right = root.right;List<Integer> resR = new ArrayList();rightTravel(right, resR);// 对比 是否一致return resL.equals(resR);}
}

这个还可以简化,直接递归对比结果,代码如下

/*** 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 compare(TreeNode left, TreeNode right) {if (left == null && right == null) {return true;}if (left == null || right == null) {return false;}return left.val == right.val && compare(left.left, right.right) &&         compare(left.right, right.left);}public boolean isSymmetric(TreeNode root) {if (root == null) {return true;}return compare(root.left, root.right);}
}


http://www.mrgr.cn/news/60015.html

相关文章:

  • 深入解析 Jenkins 自动化任务链:三大方法实现任务间依赖与状态控制
  • uniapp 底部导航栏tabBar设置后不显示的问题——已解决
  • FPGA开发时,什么情况下使用BRAM,什么情况下使用DRAM
  • (二十二)、k8s 中的关键概念
  • S32DS for ARM GPIO实践
  • 腾讯云视频文件上传云存储时自动将mp4格式转码成m3u8
  • MATLAB生物细胞瞬态滞后随机建模定量分析
  • 基础设施即代码(IaC):自动化基础设施管理的未来
  • ctfshow——web(持续更新)
  • 指数运算和幂运算
  • redis详细教程(3.hash和set类型)
  • 计算机网络——有连接传输层协议TCP
  • java平方根计算 C语言指针变量
  • UICC运营商特权与eSIM配置文件冲突问题
  • 系统滴答定时器
  • 构成正方形的数量
  • 基于SSM+微信小程序的跑腿平台管理系统(跑腿3)
  • 进程间通信(管道)
  • 【已解决,含泪总结】非root权限在服务器上配置python和torch环境,代码最终成功训练(一)
  • Ubuntu22.04编译安装实时内核
  • 2-135 基于matlab的有限差分法计算电位分布
  • 1025. 除数博弈
  • maven之pom.xml文件解读
  • flink1.17.2安装和使用
  • 基于协同过滤算法的旅游网站推荐系统
  • iTerm2 保持SSH远程连接