• 第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;
        }
    }
  • 相关阅读:
    JS学习之旅2
    JS学习之旅1
    Stack 栈
    Linked List 链表
    Array 数组
    时间/空间复杂度
    What/Why/How
    Https 握手过程
    JS跨域解决方案
    JS 的内存管理-GC
  • 原文地址:https://www.cnblogs.com/xiaobaidashu/p/11800042.html
Copyright © 2020-2023  润新知