39、二叉树-对称二叉树

思路:

复制出一个二叉树b,加上原二叉树为a。

a.val==b.val

a.left.val==b.right.val

a.right.val=b.left.val

复制代码
class Solution {
//递归方式
  public boolean isSymmetric02(TreeNode root) {
        if (root==null){
            return false;
        }
        return isSymmetric02(root.left,root.right);
    }

    private boolean isSymmetric02(TreeNode left, TreeNode right) {
        if (left==null||right==null){
            return left == null && right == null;
        }
        return left.val==right.val&&isSymmetric02(left.left,right.right)
                &&isSymmetric02(right.left,left.right);
    }

    public boolean isSymmetric(TreeNode root) {
        if (root==null){
            return false;
        }
        Queue<TreeNode> queue=new LinkedList<>();
        queue.add(root);
        queue.add(root);
        while (!queue.isEmpty()){
            TreeNode left = queue.poll();
            TreeNode right = queue.poll();
            if (left==null||right==null){
                if (left==null&&right==null){
                    continue;
                }else {
                    return false;
                }
            }
            if (left.val!=right.val){
                return false;
            }
            queue.add(left.left);
            queue.add(right.right);

            queue.add(left.right);
            queue.add(right.left);
        }
        return true;
    }
}

还有一种方法,先反转然后跟原来树对比是否相等

相关推荐
小O的算法实验室21 小时前
2026年ASOC,基于深度强化学习的无人机三维复杂环境分层自适应导航规划方法,深度解析+性能实测
算法·无人机·论文复现·智能算法·智能算法改进
郭涤生1 天前
STL vector 扩容机制与自定义内存分配器设计分析
c++·算法
༾冬瓜大侠༿1 天前
vector
c语言·开发语言·数据结构·c++·算法
Ricky111zzz1 天前
leetcode学python记录1
python·算法·leetcode·职场和发展
汀、人工智能1 天前
[特殊字符] 第58课:两个正序数组的中位数
数据结构·算法·数据库架构··数据流·两个正序数组的中位数
liu****1 天前
第16届省赛蓝桥杯大赛C/C++大学B组(京津冀)
开发语言·数据结构·c++·算法·蓝桥杯
汀、人工智能1 天前
[特殊字符] 第79课:分割等和子集
数据结构·算法·数据库架构·位运算·哈希表·分割等和子集
汀、人工智能1 天前
[特殊字符] 第74课:完全平方数
数据结构·算法·数据库架构·图论·bfs·完全平方数
CoderCodingNo1 天前
【GESP】C++四、五级练习题 luogu-P1177 【模板】排序
数据结构·c++·算法
Proxy_ZZ01 天前
从零实现LDPC比特翻转译码器:C语言实战与底层逻辑解析
c语言·算法