我在求职面试中看到这个C代码感到困惑

时间:2014-06-20 21:50:47

标签: c linked-list

免责声明: 我被允许谈论面试问题,因为我已被公司拒绝,并且在采取面试之前从未签署过NDA。< / em>的

此外,这不是&#34;为我编写代码&#34;帖子。我只是对了解这个问题的设置感到好奇。它希望我填写一个从链表中删除元素的函数体:

typedef struct
{
    int val;
    node * next;
} node;

void remove_val(node ** arr, int i)
{
    /* Write the procedure here */
}

我很困惑为什么问题有一个指针指针作为参数。我希望函数的参数将是列表的根,它将是指向节点的指针。对?知道第一个参数应该是什么???

1 个答案:

答案 0 :(得分:3)

如果删除列表的头部会怎样?您需要某种方式将其传达回调用代码。如果需要,此功能签名允许您更改列表的头部以指向其next