Linux内核单链表

主要说明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;
}
posted @ 2020-02-11 19:13  wengle  阅读(...)  评论(...编辑  收藏