剑桥offer(51~60)

发布时间:2016-12-6 8:13:23编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"剑桥offer(51~60) ",主要涉及到剑桥offer(51~60) 方面的内容,对于剑桥offer(51~60) 感兴趣的同学可以参考一下。

/*struct TreeLinkNode {    int val;    struct TreeLinkNode *left;    struct TreeLinkNode *right;    struct TreeLinkNode *next;    TreeLinkNode(int x) :val(x), left(NULL), right(NULL), next(NULL) {            }};*/class Solution {    TreeLinkNode* getNode(TreeLinkNode* pNode){        TreeLinkNode*pre = NULL;        while (pNode){            pre = pNode;            pNode = pNode->left;        }        return pre;    }public:    TreeLinkNode* GetNext(TreeLinkNode* pNode)    {        TreeLinkNode*tmp = pNode->next;        if (tmp){//如果有父节点            if (tmp->left == pNode&&pNode->right == NULL){//如果是左节点,就返回他的爸爸                return tmp;            }            else if (tmp->left == pNode&&pNode->right != NULL){                return getNode(pNode->right);            }            if (tmp->right == pNode){//如果是右节点,就返回他的右儿子                if (pNode->right){                    return getNode(pNode->right);                }                else if (tmp->next->left == tmp){                    return tmp->next;                }                else if (tmp->next->right == tmp){                    return NULL;                }            }        }        else{//根节点            return getNode(pNode->right);        }        return NULL;    }};
View Code

52.题目描述

请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。
/*struct TreeNode {    int val;    struct TreeNode *left;    struct TreeNode *right;    TreeNode(int x) :            val(x), left(NULL), right(NULL) {    }};*/class Solution {public:    bool isSymmetrical(TreeNode* pRoot)    {        return isSymmetrical(pRoot,pRoot);    }         bool isSymmetrical(TreeNode* pRoot1,TreeNode* pRoot2)    {        if(pRoot1==NULL&&pRoot2==NULL)            return true;        if(pRoot1==NULL || pRoot2==NULL)                       return false;        if(pRoot1->val!=pRoot2->val)            return false;        return isSymmetrical(pRoot1->left,pRoot2->right) && isSymmetrical(pRoot1->right,pRoot2->left);


上一篇:到底什么是单元测试
下一篇:高等数学所有符号的写法与读法

相关文章

相关评论

本站评论功能暂时取消,后续此功能例行通知。

一、不得利用本站危害国家安全、泄露国家秘密,不得侵犯国家社会集体的和公民的合法权益,不得利用本站制作、复制和传播不法有害信息!

二、互相尊重,对自己的言论和行为负责。

好贷网好贷款