/*
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:
vector<TreeLinkNode*> nodes;
void InOrder(TreeLinkNode* root) {
if (root == NULL) return;
InOrder(root->left);
nodes.push_back(root);
InOrder(root->right);
}
TreeLinkNode* GetNext(TreeLinkNode* pNode) {
TreeLinkNode* root = pNode;
while (root->next) root = root->next;
InOrder(root);
int n = nodes.size();
for (int i = 0; i < n; i++) {
if (nodes[i] == pNode && i < n - 1) {
return nodes[i + 1];
}
}
return NULL;
}
};
要想到用全局变量和写递归中序遍历的辅助方程。



京公网安备 11010502036488号