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

数据结构与算法——Java实现 41.对称二叉树

目录

101. 对称二叉树

思路

代码

Java代码及测试用例


莫道浮云终蔽日

总有雾散云开时

昨日之深渊

今日之浅谈

    —— 24.10.20

101. 对称二叉树

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

示例 1:

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

示例 2:

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

思路

若要判断一个二叉树是否对称,只需要判断从根节点的下一层开始是否轴对称,判断轴对称只需要判断左孩子的左孩子节点是否与右孩子的右孩子节点相等,遍历到叶子节点,逐层进行判断,是否从根节点开始左孩子的左孩子…的左孩子与右孩子的右孩子……的右孩子节点完全相等


代码

/*** 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) {return check(root.left,root.right);}private boolean check(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 check(left.left,right.right) && check(left.right,right.left);}
}


Java代码及测试用例

public class LeetCode101SymmetryBinaryTree {public boolean isSymmetric(TreeNode root) {return check(root.left,root.right);}private boolean check(TreeNode left,TreeNode right){if(left == null && right == null){return true;}if(left == null || right == null){return false;}if (left.value != right.value){return false;}return check(left.left,right.right) && check(left.right,right.left);}public static void main(String[] args) {TreeNode root = new TreeNode(1,new TreeNode(2,new TreeNode(3),new TreeNode(4)),new TreeNode(2,new TreeNode(4),new TreeNode(3)));LeetCode101SymmetryBinaryTree res =  new LeetCode101SymmetryBinaryTree();System.out.println(res.isSymmetric(root));TreeNode root1 = new TreeNode(11,new TreeNode(7,new TreeNode(5,new TreeNode(3),new TreeNode(6)),new TreeNode(9,new TreeNode(2),new TreeNode(8))),new TreeNode(11,new TreeNode(4,new TreeNode(9),new TreeNode(28)),new TreeNode(5)));System.out.println(res.isSymmetric(root1));}
}


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

相关文章:

  • 关于懒汉饿汉模式下的线程安全问题
  • FineReport 分页
  • 在Xshell中查看日志文件详情
  • 智能安全配电装置在老旧建筑防火中的应用
  • PHP中的ReflectionClass常见用法
  • leetcode22.括号生成
  • LeetCode Hot100 - 滑动窗口篇
  • JavaScript 数组的魔法
  • JVM面试题
  • Linux笔记之文件查找和搜索命令which,find,locate,whereis总结
  • 基于x86_64汇编语言简单教程6: 变量,常量,与运算
  • Axure中继器时间筛选
  • 将 centos7 的根分区由非逻辑卷转换成使用逻辑卷
  • halcon的intensity算子到底是Mean灰度均值最大表示清晰度最高,还是Deviation灰度偏差最大表示清晰度最高?
  • 深入了解 Flannel(2):vxlan模式下的跨主机pod通信
  • Vue框架基础知识
  • 电能表预付费系统-标准传输规范(STS)(14)
  • 【数据结构】【单调栈】视野总和
  • 动态规划之打家劫舍
  • Python 类
  • 【计网】从零开始理解TCP协议 --- 拥塞控制机制,延迟应答机制,捎带应答,面向字节流
  • 【OD】【E卷】【真题】【100分】最大利润贪心的商人(PythonJavaJavaScriptC++C)
  • Docker无法拉取镜像解决办法
  • 程序员数学:用Python学透线性代数和微积分 中文目录
  • #P3014. 数字游戏
  • STM32F1+HAL库+FreeTOTS学习18——任务通知