首页 > 其他分享 >Leecode热题100-101.对称二叉树

Leecode热题100-101.对称二叉树

时间:2024-10-19 18:18:37浏览次数:8  
标签:right TreeNode val root Leecode 二叉树 100 root1 root2

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

示例 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) {
        /**这里可能不太好理解,你也可以写成root.left和root.right */
        return isSymmetric(root, root);
    }

    public boolean isSymmetric(TreeNode root1, TreeNode root2) {
        /**如果都是空树,返回true */
        if(root1 == null && root2 == null) {
            return true;
        }
        /**如果一个是空树,一个不是,那肯定不对称 */
        if(root1 == null || root2 == null) {
            return false;
        }
        /**如果都不为空的话,需要root1和root相等并且需要root1的左树和root2的右树以及root1的右树和root2的左树对称 */
        return root1.val == root2.val && isSymmetric(root1.left, root2.right) && isSymmetric(root1.right, root2.left);
    }
}

标签:right,TreeNode,val,root,Leecode,二叉树,100,root1,root2
From: https://blog.csdn.net/Chang_Yafei/article/details/143082071

相关文章

  • LeetCode热题100|买卖股票的最佳时机(贪心)
    简述题意省流版:在一个序列里找到max(a[i]-a[k])且i>k。解题思路:  遍历这个序列,i表示当前遍历到了第i个元素,min1表示1到i这个范围内最小的元素,max1表示1到i这个范围内最大的【max(a[i]-a[k])】。max1=max(max1,第i个元素的值-min1)代码如下:classSolution{public:intm......
  • P1004 [NOIP2000 提高组] 方格取数
    要走两次因此,考虑一个四维的数组来实现,然后如果i=k&&j==l的话记得减一次即得到答案。点击查看代码#include<iostream>#include<stack>#include<cmath>#include<algorithm>#include<set>#include<vector>#include<climits>#include<string.h&g......
  • 111. 二叉树的最小深度
    思路递归时考虑几种情况:1.左右子树都为空,则最小深度=1(只有根节点)(也可理解为min(0,0)+1)2.左子树为空,右子树不空,则最小深度=右子树最小深度+13.左子树不为空,右子树为空,最小深度=左子树最小深度+14.左右子树不为空,最小深度=左右子树最小深度+1+1原因:递归的是左右子树,......
  • 红米ac2100从openwrt刷回官方系统的教程
    第一步、关闭杀毒软件和防火墙关闭系统自带的Windows安全中心。关闭防火墙:Win+R,输入control回车。打开控制面板,关闭网络防火墙。第二步、更新官方BootLoader这是最重要的一步,如果是刷过openwrt系统的路由器少了这一步,官方修复工具会一直检测不到第二次上线。进入breed,在Boo......
  • 代码随想录算法训练营day18 |530.二叉搜索树的最小绝对差 501.二叉搜索树中的众数
    学习资料:https://programmercarl.com/0530.二叉搜索树的最小绝对差.html530.二叉搜索树的最小绝对差(双指针法,pre&cur,设置最小差值初始为无穷大,当差值<最小差值就更新最小差值)点击查看代码#Definitionforabinarytreenode.#classTreeNode(object):#def__init__(......
  • 二叉树和度为二的有序树的区别
    一、定义与结构度为二的有序树:在这种树结构中,每个节点最多有两个子节点。子节点的顺序是重要的,即使两个子节点的值相同,只要他们的位置不同,他们就被视为是不同的子节点。当一个节点只有一个子节点时,该子节点的位置(左或右)并无特定要求,也即无需区分其左右次序。二叉树:二叉树......
  • 推断二叉树(进阶)
    Description给出一棵二叉树的中序遍历和每个节点的父节点,求这棵二叉树的先序和后序遍历。Input输入第一行为一个正整数n表示二叉树的节点数目,节点编号从1到n,其中1为根节点。第2行有n个数字,第i个数字表示i的父亲节点。(1的父亲节点为0,表示无)第3行为中......
  • B+树、红黑树、平衡二叉树
    1.概述这三种数据结构都用于解决动态查找问题,即能够在插入、删除的同时保持高效的查找性能。它们广泛应用于数据库、文件系统、内存管理等领域。但它们的具体结构和应用场景有所不同。B+树(B+Tree):B+树是一种自平衡的多叉树,常用于数据库系统和文件系统中。它的特点是所有......
  • 挑战1000道javascript手写题之实现Promise.all(9)
    Promise.all介绍Promise.all方法接收一个数组作为参数,这个参数数组的元素也都是promise实例,该方法返回一个promise示例。constp=Promise.all([p1,p2,p3]);p的状态由p1、p2、p3决定,p最后的状态要么是变成fulfilled,要么变成rejected。变成fulfilled:只有当p1、p2、p3......
  • 毕业设计项目-餐饮掌上设备点餐系统源码+10000字论文
    项目简介基于SSM实现的,主要功能如下:审核说明本项目源码收集于互联网或用户分享,经我们对资料的认真审核整理,确保资源可以正常使用;悉知:有一定的基础同学可以自行导入idea或者eclipse中运行项目,我们并不提供免费的技术指导。项目技术spring/springmvc/mybatis/(jsp)/html/J......