前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >LeetCode-101. 对称二叉树

LeetCode-101. 对称二叉树

原创
作者头像
魚迹
发布2023-08-14 09:23:02
1620
发布2023-08-14 09:23:02
举报

Problem: 101. 对称二叉树

思路

看到这个题,想到的解题方法是使用递归实现。判断二叉树是否对称,需要判断根节点的左子树和右子树是否对称。所以从根节点开始,递归判断左子树的左节点是否和右子树的右节点是否相同,左子树的右节点和右子树的左节点是否相同。如下图所示:

解题方法

从根节点开始,递归判断判断左子树的左节点是否和右子树的右节点是否相同,左子树的右节点和右子树的左节点是否相同。如果两个节点同时为空,返回true,都不为空的情况下判断val是否相同,相同则调用递归方法进入下一层判断。其他情况返回false

Code

代码语言:java
复制
/\*\*
 \* 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 judge(root.left,root.right);
    }
    public boolean judge(TreeNode l , TreeNode r){
        if(l==null && r==null){
            return true;
        }
        if(l!=null && r!=null){
            if(l.val == r.val){
                return judge(l.left,r.right) && judge(l.right,r.left);
            }
        }
        return false;
    }
}

结果

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 思路
  • 解题方法
  • Code
  • 结果
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档