zoukankan      html  css  js  c++  java
  • leetcode二叉树对称二叉树

    package binarytree.isSymmetric;
    
    import binarytree.untils.GenerateTreeNode;
    import binarytree.untils.TreeNode;
    
    /**
     * 101. 对称二叉树
     * 给定一个二叉树,检查它是否是镜像对称的。
     * <p>
     * <p>
     * <p>
     * 例如,二叉树 [1,2,2,3,4,4,3] 是对称的。
     * <p>
     * 1
     * / \
     * 2   2
     * / \ / \
     * 3  4 4  3
     * <p>
     * <p>
     * 但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的:
     * <p>
     * 1
     * / \
     * 2   2
     * \   \
     * 3    3
     * <p>
     * <p>
     * 进阶:
     * <p>
     * 你可以运用递归和迭代两种方法解决这个问题吗?
     */
    public class isSymmetric {
    
        /**
         * 相同二叉树的变种,递归遍历
         *
         * @param root
         * @return
         */
        public static boolean isSymmetric(TreeNode root) {
    
    
            return isSymmetric(root.left, root.right);
        }
    
        public static boolean isSymmetric(TreeNode p, TreeNode q) {
            if (p == null && q == null) {
                return true;
            }
    
            if (p == null || q == null) {
                return false;
            }
    
            if (p.val != q.val) {
                return false;
            }
    
            return isSymmetric(p.left, q.right) && isSymmetric(p.right, q.left);
    
        }
    
        public static void main(String[] args) {
            Integer[] nums = {1, 2, 2, 3, 4, 4, 3};
            TreeNode treeNode = GenerateTreeNode.generateTreeNode(nums);
            System.out.println(isSymmetric(treeNode));
        }
    }
    
    
    
  • 相关阅读:
    商人的诀窍 结构体
    商人的诀窍 结构体
    小泉的难题 结构体
    小泉的难题 结构体
    来淄博旅游 结构体
    来淄博旅游 结构体
    分类游戏 结构体
    7月20日学习
    7月19日学习
    7月18日学习
  • 原文地址:https://www.cnblogs.com/xiaoshahai/p/15691551.html
Copyright © 2011-2022 走看看