zoukankan      html  css  js  c++  java
  • LeetCode(1) Symmetric Tree

    从简单的道题目開始刷题目:

    Symmetric Tree

     

    题目:Given a binary tree, check whether it is a mirror of itself (ie, symmetric around its center).

    For example, this binary tree is symmetric:

        1
       / 
      2   2
     /  / 
    3  4 4  3
    But the following is not:

        1
       / 
      2   2
          
       3    3

    题目分析:

    第一道题目简单的题目,主要利用递归方法,保存左右两个结点。对于LeftNode结点和RightNode结点,推断LeftNode的左结点和RightNode的右结点和LeftNode的右结点和RightNode的左结点是否相等就可以,仅仅要有不相等就能够结束。跳出递归。


    代码:

    /**
     * Definition for binary tree
     * struct TreeNode {
     *     int val;
     *     TreeNode *left;
     *     TreeNode *right;
     *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
     * };
     */
    class Solution {
    public:
        
        bool check(TreeNode *leftNode,TreeNode *rightNode)
        {
            if(leftNode == NULL && rightNode == NULL)
                return true;
            if(leftNode == NULL ||rightNode ==NULL)
                return false;
            if(leftNode ->val != rightNode->val)
                return false;
            
            return  check(leftNode->left,rightNode->right) && check(leftNode->right,rightNode->left);
            
        }
        
        bool isSymmetric(TreeNode *root) {
            
            if(root == NULL)
            return true;
            return check(root->left,root->right);
        }
    };

  • 相关阅读:
    Git with SVN 协同设定
    Apache+Django+mod_wsgi安装目录
    ROR study
    PHP框架
    Gerrit 配置
    Garmin、任我游品牌自制等高线方法比较
    使用python发送outlook约会提醒邮件
    Apache部署多个django site project
    Aptana Studio 3安装(Windows)
    The Art of Readable Code
  • 原文地址:https://www.cnblogs.com/lytwajue/p/6953280.html
Copyright © 2011-2022 走看看