zoukankan      html  css  js  c++  java
  • 牛客C++中栈对指针的操作,栈对二叉树的操作。

    题目描述:

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

    /*
    struct TreeNode {
        int val;
        struct TreeNode *left;
        struct TreeNode *right;
        TreeNode(int x) :
                val(x), left(NULL), right(NULL) {
        }
    };
    */
    #include<stack>
    class Solution {
    public:
        bool isSymmetrical(TreeNode* pRoot)
        {
            if(pRoot == NULL) return true;
            stack<TreeNode *> s ;
            s.push(pRoot->left);
            s.push(pRoot->right);
            while(!s.empty()) {
                TreeNode *right = s.top();//成对取出
                s.pop();
                TreeNode *left = s.top();
                s.pop();
                if(left == NULL && right == NULL) continue;
                if(left == NULL || right == NULL) return false;
                if(left->val != right->val) return false;
                //成对插入
                s.push(left->left);
                s.push(right->right);
                s.push(left->right);
                s.push(right->left);
            }
            return true;
        }
    };
    

      

  • 相关阅读:
    NOIp2018集训test-9-23
    NOIp2018集训test-9-22(am/pm) (联考三day1/day2)
    NOIp2018集训test-9-21(am/pm)
    NOIp2018集训test-9-19(am&pm)
    day41.txt
    day40表关系
    day39
    day38数据库
    day37
    day36
  • 原文地址:https://www.cnblogs.com/littleswan/p/12425437.html
Copyright © 2011-2022 走看看