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
  • 相关阅读:
    8.25 欢乐emmm赛
    树专练
    字符串知识点大集合
    8.12 小组解题
    暑假大联欢 happynk 2019.8.11
    游记-多省联考 2019
    图论-匈牙利算法模板
    数论-哈哈哈好快乐
    数论-线性基
    其他-私人♂收藏(比赛记录 Mar, 2019)
  • 原文地址:https://www.cnblogs.com/lizhenghao126/p/11053627.html
Copyright © 2011-2022 走看看