我有一个函数需要替换列表中的指定值的节点(旧),并用该用户指定的新值(new)替换该节点。这就是我想出来的,但这会让我的程序停止工作,所以我所想到的东西出了问题。
node *modifyNode(node *L, int old, int new)
{
while (L != NULL)
{
if(L->val == old)
{
L->val = new;
}
}
L = L->next;
}
答案 0 :(得分:1)
L = L->next;
的位置应该在循环中
node *modifyNode(node *L, int old, int new)
{
while (L != NULL)
{
if(L->val == old)
{
L->val = new;
}
L = L->next; // this should be position to refer next node in the loop
}
}
答案 1 :(得分:0)
new是c ++中的关键字,不能用作变量名
node *modifyNode(node *L, int old, int _new)
{
while (L != NULL)
{
if(L->val == old)
{
L->val = _new; //new is a keyword
}
L = L->next; //reposition this here
}
}