题目描述

给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。

/*
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){
while(pNode->next!=NULL){
TreeLinkNode* pRoot = pNode->next;
if(pRoot->left==pNode){
return pRoot;
}
pNode = pNode->next;
}
return NULL;
}else{
pNode = pNode->right;
while(pNode->left != NULL){
pNode = pNode->left;
}
return pNode;
}
}
};

最新文章

  1. PHP设计模式(四)单例模式(Singleton For PHP)
  2. Nginx在线服务状态下平滑升级或新增模块的详细操作
  3. 归并排序算法 java 实现
  4. git 设置多项目实现多账号登陆
  5. c++关键字之#define typedef const
  6. 在Oracle中使用rank()over()排名的问题
  7. 20145305 《Java程序设计》实验四
  8. Ubuntu - Grub2.0修改默认启动项
  9. 20169210《Linux内核原理与分析》第二周作业
  10. PCB设计备忘录
  11. STM32 IAP 固件升级设计/U盘升级固件
  12. linux shell 找端口号及对应的进程
  13. Vue.js优雅的实现列表清单
  14. 实用的shell脚本面试题和答案
  15. Django REST framework---请求和响应
  16. position的sticky与fixed
  17. day06数据类型----元组、字典、集合
  18. K Nearest Neighbor 算法
  19. div水平垂直居中方法及优缺点
  20. 为什么使用React Native

热门文章

  1. 多目标遗传算法 ------ NSGA-II (部分源码解析)目标函数 problemdef.c
  2. 4、Python-列表
  3. 转--python 编码规范
  4. 在O(N)时间内求解 正数数组中 两个数相加的 最大值
  5. Java面试题系列(三)Java new一个对象的过程中发生了什么
  6. FASTREPORT COM/ActiveX报表如何保存到C++项目中?
  7. C# dll 在注册表中寻找
  8. Java SE之Java工作原理
  9. CF101D Castle
  10. 升级版updateOozie.sh