single-linked list node delete operation
发布时间
阅读量:
阅读量
12.8-5
int sll_remove(struct NODE **rootp, struct NODE *node);
AI写代码cpp
可以假定节点的数据结构在头文件singly_linked_list_node.h中被定义,函数的第一个参数为指向链表根指针的指针,第二个参数为指向需要删除节点的指针。若链表中不包含该指针,则函数返回假;否则将删除该节点并返回真。为何函数设计为传递欲删除节点的指针而非其值,具有哪些优势?
此问题所涉及的代码逻辑相对简单,但需特别关注的是关于查找节点后内存释放的问题,具体应由sll_remove函数内部完成释放操作,还是由调用者负责释放。
#define TRUE 1
#define FALSE 0
#define NUL '\0'
typedef struct NODE {
struct NODE *link;
int value;
} Node;
int sll_remove(Node **rootp, Node *node) {
if(node == NULL) {
全部评论 (0)
还没有任何评论哟~
