• leecode第一百零一题(对称二叉树)


    /**
     * 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:
        void digui(TreeNode* root_a,TreeNode* root_b,bool &result){  
            if(root_a==NULL&&root_b==NULL)//先看看是否都是NULL
                return;
            if((root_a==NULL&&root_b!=NULL)||
               (root_a!=NULL&&root_b==NULL)||
               (root_a->val!=root_b->val))//如果两边只有一边是NULL或者两边值不等,就返回不行
            {
                result=false;
                return;
            }
                
            
            digui(root_a->left,root_b->right,result);
            if(!result)//我想早点返回
                return;
            digui(root_a->right,root_b->left,result);
        }
        
        bool diedai(TreeNode* root)
        {
            queue<TreeNode*> temp;//使用队列结构
            temp.push(root);
            temp.push(root);
            bool result=true;
            while(!(temp.empty())&&result)//停止条件:队列为空或有不满足条件的时候
            {
                TreeNode* node_a=temp.front();//提取头两个节点
                temp.pop();
                TreeNode* node_b=temp.front();
                temp.pop();
                
                if(node_a==NULL&&node_b==NULL)//检查两个节点是否同时为NULL
                    continue;
                else if(node_a==NULL||node_b==NULL)
                {
                    result=false;
                    continue;
                }
                else if(node_a->val!=node_b->val)//检查两个节点值是否相等
                    result=false;
                
                temp.push(node_a->left);//然后吧左右孩子分别对应压入队列
                temp.push(node_b->right);
                temp.push(node_a->right);
                temp.push(node_b->left);
            }
            return result;
        }
        
        bool isSymmetric(TreeNode* root) {
            //diedai
            return diedai(root);
            //digui 
            bool result=true;
            digui(root,root,result);
            return result;
        }
    };

    分析:

    还是得动脑子、

  • 相关阅读:
    Oracle数据类型之number
    jQuery与Dom
    Tableau问题及解决办法汇总
    安装
    impala语句
    需要模拟点击爬虫小案例
    Navicat连接Oracle报错处理
    python manage.py runserver报错
    Django安装报错
    用户行为日志
  • 原文地址:https://www.cnblogs.com/CJT-blog/p/11216677.html
Copyright © 2020-2023  润新知