zoukankan      html  css  js  c++  java
  • 101. 对称二叉树

    题目

    代码

    /**
     * Definition for a binary tree node.
     * struct TreeNode {
     *     int val;
     *     TreeNode *left;
     *     TreeNode *right;
     *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
     * };
     */
    class Solution {
    public:
        bool isSymmetric(TreeNode* root) {
            // return isMirror(root,root);
            list<TreeNode*> que;
            que.push_back(root);
            que.push_back(root);
            while(que.empty()==false)
            {
                auto t1=que.front();
                que.pop_front();
                auto t2=que.front();
                que.pop_front();
                if (t1 == nullptr && t2 == nullptr) continue;
                if (t1 == nullptr || t2 == nullptr) return false;
                if (t1->val != t2->val) return false;
                que.push_back(t1->left);
                que.push_back(t2->right);
                que.push_back(t1->right);
                que.push_back(t2->left);
            }
            return true;
        }
        //这是递归的方法
    //     bool isMirror(TreeNode* left,TreeNode* right)
    //     {
    //        if(left==nullptr&&right==nullptr) return true; 
    //        if(left==nullptr||right==nullptr) return false;
            
    //        return (left->val==right->val)&&isMirror(left->right,right->left)&&isMirror(left->left,right->right);
    //     }
    };

    思路

    迭代的方法,用list存储值,每次压入两个节点的左孩子和右孩子,取出的时候进行判断即可;递归的方法每次放入的是节点的左边对应另一个节点的右边。

    https://github.com/li-zheng-hao
  • 相关阅读:
    标准库类型string
    auto与decltype
    理解复合类型的声明
    复合类型
    标识符and名字的作用域
    tar 命令详解(持续更新)
    Linux中的update和upgrade的作用
    mysql中文乱码
    Linux 安装MySql——apt-get版
    Linux mysql开启远程访问
  • 原文地址:https://www.cnblogs.com/lizhenghao126/p/11053627.html
Copyright © 2011-2022 走看看