二叉树的下一个节点
2017-07-04 10:27
141 查看
/* struct TreeLinkNode { int val; struct TreeLinkNode *left; struct TreeLinkNode *right; struct TreeLinkNode *next; TreeLinkNode(int x) :val(x), left(NULL), right(NULL), next(NULL) { } }; */ //next是指父节点 class Solution { public: TreeLinkNode* GetNext(TreeLinkNode* pNode) { if(pNode==NULL) return NULL; if(pNode->right!=NULL) { pNode = pNode->right; while(pNode->left!=NULL) { pNode = pNode->left; } return pNode; } else if(pNode->right==NULL) { struct TreeLinkNode* pParent = pNode->next; struct TreeLinkNode* pCurrent = pNode; while(pParent!=NULL&&pCurrent==pParent->right) { pCurrent=pParent; pParent=pParent->next; } return pParent; } return NULL; } };
相关文章推荐
- 题目8:二叉树的下一个节点
- 二叉树的下一个节点
- 二叉树的下一个节点
- 剑指offer --- 二叉树的下一个节点
- 剑指offer-二叉树的下一个节点
- 剑指offer——二叉树的下一个节点___
- 【剑指offer】面试题 8:二叉树的下一个节点
- 二叉树的下一个节点
- 二叉树的下一个节点
- 【二叉树的递归】06填充每个节点中的下一个正确的指针【Populating Next Right Pointers in Each Node】
- 二叉树的下一个节点
- 剑指offer之二叉树的下一个节点
- 二叉树的下一个节点
- 剑指offer——二叉树的下一个节点
- 二叉树的下一个节点
- 剑指offer系列之56:二叉树的下一个节点
- 跟进问题“在每个节点中填充下一个正确的指针”。层次遍历二叉树
- 剑指Offer--二叉树的下一个节点
- (php实现剑指offer)二叉树的下一个节点
- 《剑指offer》二叉树的下一个节点