主要说明Linux内核中单链表操作的关键思想,需要注意的地方

1. 假设

  1. 为了说明关键思想,对数据结构进行了精简

2. 数据结构定义

struct ListNode {
    int val;
    ListNode *next;
    ListNode(int x) : val(x), next(NULL) {}
};

3. 链表操作

3.1 创建链表
  1. 关键思想:链表实际上是通过next指针链接起来的,所以只需要控制next指针里存储什么地址,就可以建立节点之间的链接关系
ListNode* create(ListNode* l1) {
    ListNode *head = NULL;
    ListNode **node = &head; //可以理解为node是一个指向ListNode结构体next指针成员的指针
    while(l1! = NULL){
        (*node) = new ListNode(l1->val); //next指针存储一个节点地址
        node = &((*node)->next); //更新node,让其指向下一个next指针
        l1 = l1->next;
    }        
    return head;
}
扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。