题解:#找出二叉树的下一个结点#
/* 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==nullptr) { 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-1;i++) { TreeLinkNode* cur=nodes[i]; if(pNode==cur) { return nodes[i+1]; } } return nullptr; } };#剑指offer第八题#
剑指offer刷题 文章被收录于专栏
坚持!努力!学习