标签:off 遍历 bsp 剑指offer amp code 返回 blog logs
题目描述:
给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。
分析:
代码:
1 /* 2 struct TreeLinkNode { 3 int val; 4 struct TreeLinkNode *left; 5 struct TreeLinkNode *right; 6 struct TreeLinkNode *next; 7 TreeLinkNode(int x) :val(x), left(NULL), right(NULL), next(NULL) { 8 9 } 10 }; 11 */ 12 class Solution { 13 public: 14 TreeLinkNode* GetNext(TreeLinkNode* pNode) { 15 if(pNode->right == NULL) { 16 if(pNode->next == NULL) return NULL; 17 TreeLinkNode* p1 = pNode; 18 TreeLinkNode* p2 = pNode->next; 19 while(p2 && p2->right == p1) { 20 p1 = p1->next; 21 p2 = p1->next; 22 } 23 if(p2) return p2; 24 return NULL; 25 } 26 TreeLinkNode* nextNode = pNode->right; 27 while(nextNode->left) { 28 nextNode = nextNode->left; 29 } 30 return nextNode; 31 } 32 };
标签:off 遍历 bsp 剑指offer amp code 返回 blog logs
原文地址:http://www.cnblogs.com/jacen789/p/7747792.html