题解:#找出二叉树的下一个结点#
/*
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刷题 文章被收录于专栏
坚持!努力!学习
查看15道真题和解析