刷题专栏(五):对称二叉树

简介: 刷题专栏(五):对称二叉树

前言

今天的这道题《对称二叉树》,难度处于简单层次,主要考察的是对二叉树数据结构的理解以及如何使用递归的概念。image.png

算法题:对称二叉树

对称二叉树这道题目的描述很少,将要实现的目的很直接的传达给了大家。

那就是验证一个二叉树是否存在轴对称的情况,也就是判断是否左右对称。

我们可以通过题目给出的示例1就能看出来,

逻辑思路有了,那么如何通过代码来实现呢,大概一想,必然要使用递归概念。

一直递归到二叉树的最底层。

而且从一开始,二叉树的左右两边就已经分开了,所以只需要在递归代码体中判断即可。

不过有一个特殊情况,那就是对称的概念,不是两边的左节点对应左节点,而是左节点对应右节点才能称之为对称。

代码展示

这就是我的执行代码了,通过递归is方法来实现多个节点的判断,直到递归到最后一层为止。

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

执行结果:

这道题的执行结果还是比较满意的,递归好使。

image.png

总结

本道题主要涉及数据结构二叉树和递归的概念,在比对的期间也很简单,大家还是可以去做一下这道题的。

目录
打赏
0
相关文章
|
2月前
leecode刷题 对称二叉树
给定一个二叉树的根节点 `root`,检查该二叉树是否轴对称。轴对称意味着二叉树的左子树和右子树在结构和值上都完全镜像对称。示例 1 中的树 `[1,2,2,3,4,4,3]` 是对称的,而示例 2 中的树 `[1,2,2,null,3,null,3]` 不是对称的。节点数在 1 到 1000 之间,节点值范围为 -100 到 100。代码通过递归检查左右子树是否镜像对称。
31 13
|
9月前
|
六六力扣刷题二叉树之对称二叉树
六六力扣刷题二叉树之对称二叉树
102 1
|
9月前
|
刷题专栏(六):二叉树的最大深度
刷题专栏(六):二叉树的最大深度
68 0
|
9月前
|
刷题专栏(十一):二叉树的后序遍历
刷题专栏(十一):二叉树的后序遍历
69 0
|
9月前
|
刷题专栏(十):二叉树的前序遍历
刷题专栏(十):二叉树的前序遍历
65 0
代码随想录算法训练营第十四天 | LeetCode 102. 二叉树的层序遍历、LeetCode 226. 翻转二叉树、LeetCode 101. 对称二叉树
代码随想录算法训练营第十四天 | LeetCode 102. 二叉树的层序遍历、LeetCode 226. 翻转二叉树、LeetCode 101. 对称二叉树
66 0
牛客网《剑指offer》专栏刷题练习之双指针算法的使用
牛客网《剑指offer》专栏刷题练习之双指针算法的使用
118 0
牛客网《剑指offer》专栏刷题练习之掌握动态规划思想
牛客网《剑指offer》专栏刷题练习之掌握动态规划思想
137 0
剑指Offer - 面试题28:对称的二叉树
剑指Offer - 面试题28:对称的二叉树
81 0
【C++算法图解专栏】一篇文章带你掌握尺取法(双指针)
【C++算法图解专栏】一篇文章带你掌握尺取法(双指针)
267 0