LeetCode-101-对称二叉树

题目:

给你一个二叉树的根节点 root , 检查它是否轴对称。
思路·:利用两个队列,每个队列存储的是根节点的其中一棵子树的节点。之后进行逻辑判断就可以了。

class Solution {
    public boolean isSymmetric(TreeNode root) {
        if(root == null){
            return true;
        }
        Queue<TreeNode> queue1 = new LinkedList<>();
        Queue<TreeNode> queue2 = new LinkedList<>();
        if(root.left == null){
            if(root.right != null){
                return false;
            }
        }else{
            if(root.right == null){
                return false;
            }
            if(root.left.val != root.right.val){
                return false;
            }
            queue1.add(root.left);
            queue2.add(root.right);
        }
        TreeNode node1 = null;
        TreeNode node2 = null;

        while(!queue1.isEmpty() && !queue2.isEmpty()){
            node1 = queue1.poll();
            node2 = queue2.poll();

            if(node1.left == null){
                if(node2.right != null){
                    return false;
                }
            }else{
                if(node2.right == null){
                    return false;
                }
                if(node1.left.val != node2.right.val){
                    return false;
                }
                queue1.add(node1.left);
                queue2.add(node2.right);
            }

            if(node1.right == null){
                if(node2.left != null){
                    return false;
                }
            }else{
                if(node2.left == null){
                    return false;
                }
                if(node1.right.val != node2.left.val){
                    return false;
                }
                queue1.add(node1.right);
                queue2.add(node2.left);
            }
        }
        if(!queue1.isEmpty()){
            return false;
        }
        if(!queue2.isEmpty()){
            return false;
        }
        return true;
    }
}
相关推荐
快乐就好ya35 分钟前
Java多线程
java·开发语言
IT学长编程39 分钟前
计算机毕业设计 二手图书交易系统的设计与实现 Java实战项目 附源码+文档+视频讲解
java·spring boot·毕业设计·课程设计·毕业论文·计算机毕业设计选题·二手图书交易系统
CS_GaoMing1 小时前
Centos7 JDK 多版本管理与 Maven 构建问题和注意!
java·开发语言·maven·centos7·java多版本
Indigo_code1 小时前
【数据结构】【顺序表算法】 删除特定值
数据结构·算法
艾伦~耶格尔2 小时前
Spring Boot 三层架构开发模式入门
java·spring boot·后端·架构·三层架构
man20172 小时前
基于spring boot的篮球论坛系统
java·spring boot·后端
__AtYou__2 小时前
Golang | Leetcode Golang题解之第448题找到所有数组中消失的数字
leetcode·golang·题解
阿史大杯茶2 小时前
Codeforces Round 976 (Div. 2 ABCDE题)视频讲解
数据结构·c++·算法
2401_858120532 小时前
Spring Boot框架下的大学生就业招聘平台
java·开发语言
S hh2 小时前
【Linux】进程地址空间
java·linux·运维·服务器·学习