替换链接列表中的节点

时间:2017-04-23 02:59:52

标签: c linked-list

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

node *modifyNode(node *L, int old, int new)
{
    while (L != NULL)
    {
        if(L->val == old)
        {
            L->val = new;

        }
    }
    L = L->next;
}

2 个答案:

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