zoukankan      html  css  js  c++  java
  • LeetCode OJ--Symmetric Tree **

    http://oj.leetcode.com/problems/symmetric-tree/

    判断树是否对称

    class Solution {
    public:
    bool compare(TreeNode *left, TreeNode *right)
    {
        if(left == NULL && right != NULL)
            return false;
        if(left != NULL && right == NULL)
            return false;
        if(left == NULL && right == NULL)
            return true;
        if(left->val != right->val)
            return false;
        return compare(left->left, right->right) && compare(left->right, right->left);
    }
        bool isSymmetric(TreeNode *root) {
            if(root == NULL)
                return true;
            return compare(root->left, root->right);
        }
    };

    上面是卡哒的代码。

    本来想的是中序遍历,然后判断是否回文。代码如下:

     struct TreeNode {
       int val;
       TreeNode *left;
       TreeNode *right;
       TreeNode(int x) : val(x), left(NULL), right(NULL) {}
     };
     vector<char> ans;
    void leftFirstTravel(TreeNode *root)
    {
        if(root->left == NULL)
            ans.push_back('#');
        else 
            leftFirstTravel(root->left);
    
        ans.push_back(root->val);
    
        if(root->right == NULL)
            ans.push_back('#');
        else
            leftFirstTravel(root->right);
        return;
    }
    
    class Solution {
    public:
        
        bool isSymmetric(TreeNode *root) {    
            if(root == NULL)
                return true;
            ans.clear();   
            leftFirstTravel(root);
    
            int size = ans.size();
            int mid = size/2;
            for(int i = 1;mid - i>= 0;i++)
            {
                if(ans[mid-i] != ans[mid+i] )
                    return false;
            }
            return true;
        }
    };
    Input: {1,2,3,3,#,2,#}
    Output: true
    Expected: false

    但是这样遍历出来的是 3 2 1 2 3 即便是加了#,是# 3 # 2 # 1 # 2 # 3 # ,但实际上不是。嗯嗯,要更加深刻的理解递归。

  • 相关阅读:
    验证信息json返回,前台接收显示无刷新。笔记
    ThinkPHP5 查询数据并处理结果
    PHP 数组和字符串互相转换实现方法
    php+jquery+ajax+json的一个最简单实例
    is_numeric 检测变量是否为数字或数字字符串
    PHP中使用cURL实现Get和Post请求的方法
    mb_substr实例
    推荐:多目标 mmoe
    多目标模型--DBMTL
    正负例优化
  • 原文地址:https://www.cnblogs.com/qingcheng/p/3526048.html
Copyright © 2011-2022 走看看