zoukankan      html  css  js  c++  java
  • 剑指Offer的学习笔记(C#篇)-- 对称的二叉树

    题目描述

    请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。

    一 . 题目分析

            递归法。

            一、空树判断,单独搞出来。

            二、非空树。

                   递归:一个递归+三个递归停止条件

    二 . 代码实现

    class Solution
    {
        public bool isSymmetrical(TreeNode pRoot)
        {
            // write code here
            //空树判定
            if (pRoot == null)
            {
                return true;
            }
            else
            //输入根节点的左右节点
            {
                return helper(pRoot.left, pRoot.right);
            }
        }
         
        private bool helper(TreeNode n1, TreeNode n2)
        {
            //递归停止条件一:(对称条件)、没有子节点了!
            if(n1 == null && n2 == null)
                return true;
            //递归停止条件二:(非对称条件)、左右节点只有一个是空的
            if(n1 == null || n2 == null)
                return false;
            //递归停止条件三:(非对称条件)、左右对应节点不一样
            if(n1.val != n2.val)
                return false;
            //递归方法
            return helper(n1.left, n2.right) && helper(n1.right, n2.left);
        }
    }
  • 相关阅读:
    Git使用笔记
    javascript获取表单值的7种方式
    javascript里阻止事件冒泡
    PHP面向对象04_串行化
    MySQL数据库锁定机制
    SAP R3和JAVA交换数据之JCO
    @XStreamAlias使用
    JCO 自定义DestinationDataProvider
    IBM websphere MQ 消息发送与获取
    WebSphere MQ 入门指南
  • 原文地址:https://www.cnblogs.com/WeiMLing/p/10970469.html
Copyright © 2011-2022 走看看