剑指offer—二叉树的下一个结点
2015-10-08 21:32
513 查看
华电北风吹
天津大学认知计算与应用重点实验室
日期:2015/10/8
题目描述
给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。
解析:分情况,看是否存在右子树
天津大学认知计算与应用重点实验室
日期:2015/10/8
题目描述
给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。
解析:分情况,看是否存在右子树
using namespace std; /* 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 { public: TreeLinkNode* GetNext(TreeLinkNode* pNode) { if(pNode==NULL) return NULL; if(pNode->right!=NULL) return GetMin(pNode->right); while((pNode->next!=NULL) &&(pNode==pNode->next->right)) pNode=pNode->next; return pNode->next==NULL?NULL:pNode->next; } TreeLinkNode* GetMin(TreeLinkNode* pNode) { if(pNode==NULL) return NULL; while(pNode->left!=NULL) pNode=pNode->left; return pNode; } };
相关文章推荐
- header('Content-type:text/html;charset = utf-8');出现中文乱码
- 剑指offer—删除链表中重复的结点
- javascript 笔试 做一个图片轮播的脚本
- 无需Flash无需依赖任何JS库实现文本复制与剪切
- 剑指offer—链表中环的入口结点
- 对于新增节点的JS操作问题
- Merge Two Sorted Lists & Remove Nth Node From End of List
- 剑指offer—字符流中第一个不重复的字符
- 剑指offer—构建乘积数组
- 剑指offer—数组中重复的数字
- React Native入门遇到的一些问题
- 剑指offer—把字符串转换成整数
- 剑指offer—求1+2+3+...+n
- css3学习之用户界面
- 剑指offer—孩子们的游戏(圆圈中最后剩下的数)
- jquery组织结构图插件 (基于jit-yc 做可拖动、自适应伸缩的orgchart)
- JavaScript+Canvas 实现网页截屏
- Angularjs的核心概念
- JavaScript实现点击按钮弹出输入框,点确定后添加li组件到ul组件里
- jsp中静态include和动态include的区别