第101题:对称二叉树

一. 问题描述

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

例如,二叉树 [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

二. 解题思路

本题思路:采用递归+深度搜素的方式进行求解。

步骤一:递归函数(节点1 p,节点2 q)。并比较节点p和q的值是否相等。

步骤二:当相等时,进行递归,将p的左子树与q的右子树相结合进行递归函数递归,将p的右子树与q的左子树相结合进行函数递归,重复步骤一。

步骤三:如果所有返回为true,则最终返回true,否则返回false。

三. 执行结果

执行用时 :0 ms, 在所有 java 提交中击败了100.00%的用户

内存消耗 :37.7 MB, 在所有 java 提交中击败了67.38%的用户

四. Java代码

class Solution {
    public boolean isSymmetric(TreeNode root) {
        if(root==null)
            return true;
       return treeN(root.left,root.right);
    }
    
    public boolean treeN(TreeNode p,TreeNode q){
        if(p==null&&q==null)
        {
            return true;
        }else if(p==null||q==null)
        {
            return false;
        }
        
        if(p.val==q.val)
        {
            if(treeN(p.left, q.right)&&treeN(p.right,q.left)) return true;
        }else
        {
            return false;
         }
         return false;
    }
}

猜你喜欢

转载自www.cnblogs.com/xiaobaidashu/p/11800042.html
今日推荐