美文网首页
101-对称二叉树

101-对称二叉树

作者: 无力韬韬 | 来源:发表于2020-08-27 17:59 被阅读0次

给定一个二叉树,检查它是否是镜像对称的。

例如,二叉树 [1,2,2,3,4,4,3] 是对称的。

    1
   / \
  2   2
 / \ /  \
3  4 4  3

但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的:

  1
 / \
 2   2
 \   \
  3    3
进阶:

你可以运用递归和迭代两种方法解决这个问题吗?

递归法:
/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode(int x) { val = x; }
 * }
 */
class Solution {
    public boolean isSymmetric(TreeNode root) {
        if(root==null)
        {
            return true;
        }
        return find(root.left,root.right);
    }
    boolean find(TreeNode left,TreeNode right)
    {
        if(left==null&&right==null)
        return true;
        if(left==null||right==null)
        return false;
        if(left.val!=right.val)
        return false;
        return find(left.left,right.right)&&find(left.right,right.left);
    }
}
迭代法:
class Solution {
    public boolean isSymmetric(TreeNode root) {
        if(root==null)
        return true;
        Queue<TreeNode> queue=new LinkedList<>();
        queue.offer(root.left);
        queue.offer(root.right);
        while(!queue.isEmpty())
        {
         //   TreeNode tree=queue.poll();
            TreeNode l=queue.poll();
            TreeNode r=queue.poll();
            if(l==null&&r==null)
                 continue;
            if(l==null||r==null||l.val!=r.val)
            {
                return false;
            }
            queue.offer(l.left);
            queue.offer(r.right);
            queue.offer(l.right);
            queue.offer(r.left);
        }
        return true;
    }
}

相关文章

  • 101-对称二叉树

    给定一个二叉树,检查它是否是镜像对称的。 例如,二叉树 [1,2,2,3,4,4,3] 是对称的。 但是下面这个 ...

  • 2019-12-10 刷题-2(栈)

    最近在学习栈,目前都在刷栈的题目。 题目序号:101-对称二叉树本题有递归和迭代两种做法,递归比较简单,判断两个子...

  • 【LeetCode】101-对称二叉树

    对称二叉树 题目 给定一个二叉树,检查它是否是镜像对称的。 例如,二叉树 [1,2,2,3,4,4,3] 是对称的...

  • LeetCode-101-对称二叉树

    LeetCode-101-对称二叉树 101. 对称二叉树[https://leetcode-cn.com/pro...

  • 2019-04-09 BFS广度优先搜索刷题Day1

    Leetcode 101 对称二叉树 题目描述: 给定一个二叉树,检查它是否是镜像对称的。 例如,二叉树 [1,2...

  • 剑指offer | 对称二叉树

    对称二叉树 请实现一个函数,用来判断一棵二叉树是不是对称的如果一棵二叉树和它的镜像一样,那么它是对称的 分析:根据...

  • 面试题28. 对称的二叉树

    对称的二叉树 题目描述 请实现一个函数,用来判断一棵二叉树是不是对称的。如果一棵二叉树和它的镜像一样,那么它是对称...

  • 第九天的leetcode刷题

    今天的题目是判断是否为对称二叉树:101. 对称二叉树[https://leetcode-cn.com/probl...

  • Swift 对称二叉树 - LeetCode

    题目: 对称二叉树 给定一个二叉树,检查它是否是镜像对称的。 例如,二叉树 [1,2,2,3,4,4,3] 是对...

  • LeetCode 101. 对称二叉树 | Python

    101. 对称二叉树 题目 给定一个二叉树,检查它是否是镜像对称的。 例如,二叉树 [1,2,2,3,4,4,3]...

网友评论

      本文标题:101-对称二叉树

      本文链接:https://www.haomeiwen.com/subject/wkhhsktx.html