替换链接列表中的节点

beos 发布于 2019-10-09 c 最后更新 2019-10-09 22:59 13 浏览

我有一个函数需要替换列表(旧)中指定值的节点,并用用户指定的新值替换该节点(新)。这就是我想到的,但它让我的程序停止工作,所以我的想法出了什么问题。

node *modifyNode(node *L, int old, int new)
{
    while (L != NULL)
    {
        if(L->val == old)
        {
            L->val = new;
}
    }
    L = L->next;
}
已邀请:

pporro

赞同来自:

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
     }
}

yet

赞同来自:

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
}
}