2个问题:
我正在编写一个函数来将节点添加到列表中。目前我有这样的:
void addList( NODE_TYPE** head, NODE_TYPE** d_name ) { (*d_name)->next = *head; *head = *d_name; }
在里面
main()
,我这样称呼它:addList( &head, &node_3);
我的问题是,是否有另一种方法可以使用函数原型来做到这一点,例如:
void addList( NODE *head, NODE *node);
?
这是一个类问题,我不明白如何使用上述函数原型进行前置,因为调用函数只会传入地址的值,调用者将无法看到对头部所做的任何更改,也节点。
我不确定我的 deleteList 函数是否正确。我想要它,以便温度指向头部(锚点)指向的位置。然后 next_free 指向与头部链接的第二个节点。然后我释放第一个节点。然后重复第二,第三等等,直到所有这些都被释放。
void deleteList( NODE_TYPE** head ) { NODE_TYPE* temp = *head; NODE_TYPE* next_free = NULL; while ( temp->next != NULL ) { next_free = temp->next; free( temp ); temp = next_free; } *head = NULL; }
这是正确的方法吗?