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

101. 对称二叉树

作者: Andysys | 来源:发表于2019-12-29 00:22 被阅读0次
        // 递归
        public boolean isSymmetric(TreeNode root) {
            return isMirror(root, root);
        }
    
        public boolean isMirror(TreeNode root1, TreeNode root2) {
            if (root1 == null && root2 == null) {
                return true;
            }
            if (root1 == null || root2 == null) {
                return false;
            }
            return (root1.val == root2.val)
                    && isMirror(root1.left, root2.right)
                    && isMirror(root1.right, root2.left);
        }
    
        // 迭代
        public boolean isSymmetric2(TreeNode root) {
            Queue<TreeNode> q = new LinkedList<>();
            q.add(root);
            q.add(root);
            while(!q.isEmpty()) {
                TreeNode t1 = q.poll();
                TreeNode t2 = q.poll();
                if (t1 == null && t2 == null) {
                    continue;
                }
                if (t1 == null || t2 == null) {
                    return false;
                }
                if (t1.val != t2.val) {
                    return false;
                }
                q.add(t1.left);
                q.add(t2.right);
                q.add(t1.right);
                q.add(t2.left);
            }
            return true;
        }
    

    相关文章

      网友评论

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

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