二叉树的下一个节点
来源:互联网 发布:怎么一起网络看电影 编辑:程序博客网 时间:2024/05/17 23:41
题目
给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。
思路
根据给出的节点的父节点指针一直循环往上找可以找到最终的根节点,然后对根节点进行中序遍历,当遍历到当前元素的下一个就是需要的节点。
参考代码
/*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) return pNode; TreeLinkNode* p = pNode; while (p->next != p && p->next != nullptr) { p = p->next; } stack<TreeLinkNode*> st; bool find = false; while (p || !st.empty()) { while (p) { st.push(p); p = p->left; } TreeLinkNode* top = st.top(); st.pop(); if (find) { p = top; break; } else if (top == pNode) { find = true; } p = top->right; } return p; }};
阅读全文
0 0
- 二叉树的下一个节点
- 二叉树的下一个节点
- 二叉树的下一个节点
- 二叉树的下一个节点
- 二叉树的下一个节点
- 二叉树的下一个节点
- 二叉树的下一个节点
- 二叉树的下一个节点
- 二叉树的下一个节点
- 二叉树的下一个节点
- 二叉树的下一个节点
- 二叉树的下一个节点
- 找二叉树节点的下一个节点
- 【二叉树】二叉树的下一个节点
- 剑指Offer--二叉树的下一个节点
- 二叉树的下一个节点(中序)
- 求二叉树的下一个节点
- Python:二叉树的下一个节点
- ubuntu的man命令帮助如何设置中文版
- poi操作excel之: 将NUMERIC转换成TEXT
- ros学习笔记2-创建工作空间
- Java SE 1.6对synchronized的优化
- CodeForces
- 二叉树的下一个节点
- c++ 简化版lambda的介绍
- JavaScript学习(一) 数据类型
- 插入排序
- Nginx+Apache实现网页动静分离
- 苹果自动化之重签名
- Solr集群的搭建和使用(2)
- 2.编写第一个Quartz任务
- 【广告算法工程师入门 2】广告检索和转化流程