[剑指offer]二叉树的下一个结点
来源:互联网 发布:浏览器打不开淘宝 编辑:程序博客网 时间:2024/05/01 14:46
题目描述
给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。
分析:
1.二叉树为空,则返回空;
2.节点右孩子存在,则设置一个指针从该节点的右孩子出发,一直沿着指向左子结点的指针找到的叶子节点即为下一个节点;
3.节点不是根节点。如果该节点是其父节点的左孩子,则返回父节点;否则继续向上遍历其父节点的父节点,重复之前的判断,返回结果。
代码:
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){ pNode=pNode->right; while(pNode->left){ pNode=pNode->left; } return pNode; } while(pNode->next){ if(pNode==pNode->next->left) return pNode->next; pNode=pNode->next; } return NULL; }};
ps.心情差,很烦躁
0 0
- 剑指offer--二叉树的下一个结点
- 《剑指offer》二叉树的下一个结点
- 《剑指offer》-- 二叉树的下一个结点
- 剑指offer:二叉树的下一个结点
- 剑指offer:二叉树的下一个结点
- [剑指offer]二叉树的下一个结点
- 剑指offer-二叉树的下一个结点
- 《剑指offer》二叉树的下一个结点
- 剑指offer: 二叉树的下一个结点
- 剑指offer 二叉树的下一个结点
- 剑指offer-二叉树的下一个结点
- 【剑指offer】二叉树的下一个结点
- 剑指offer:二叉树的下一个结点
- 剑指offer--二叉树的下一个结点
- 剑指offer:二叉树的下一个结点
- 剑指offer:二叉树的下一个结点
- 剑指offer:二叉树的下一个结点
- 剑指offer 二叉树的下一个结点
- 选择和插入排序
- MAC下parallels虚拟机安装Ubuntu14.04 lts分辨率问题
- 解决无法docker镜像无法上传的问题
- 运放输入阻抗问题 op1177
- Spring关键词的理解
- [剑指offer]二叉树的下一个结点
- object-c中类的定义
- 关于Framework的一些记录
- acm 2016/5/18 hpu15级练习 B
- 程序员的职业规划
- ofbiz
- linux下touch修改文件的时间戳
- Git和SourceTree合用
- 51nod 1192 Gcd表中的质数