Advertisement

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)

还没有任何评论哟~