我是该页面的新手,我真的被大学的作业困住了,以重新创建一个无需递归即可将节点插入树的函数。给我递归方法,我需要将其转换为迭代。这是给定的递归代码:
TreeNode *InsertTree(TreeNode *root, TreeNode *newnode)
{
if (!root)
{
root = newnode;
root->left = root->right=NULL;
}
else if (newnode->entry < root->entry)
{
root->left = InsertTree(root->left, newnode);
}
else
{
root->right = InsertTree(root->right, newnode);
}
return root;
}
Run Code Online (Sandbox Code Playgroud)
我做了这个:
TreeNode *InsertTree(TreeNode *root, TreeNode *newnode)
{
if (!root)
{
root = newnode;
root->left = root->right=NULL;
}
else
{
TreeNode * temp = root, *prev = NULL;
while(temp)
{
if (temp->entry < newnode->entry)
temp = temp->right;
else
temp = temp->left;
}
newnode; …Run Code Online (Sandbox Code Playgroud)