学习笔记1——链表(C++版)

定义:链表由一个一个的节点构成,只需要知道首节点的地址(首地址的指针),就可以知道整个链表的内容。

单链表

如何创建一个单链表

1.声明一个节点结构体

struct ListNode1{
    int val;
    ListNode1 *next;
    ListNode1(int x) : val(x), next(nullptr) {}
};

//ListNode1(int x) : val(x), next(nullptr) {} 是一个构造函数,用于节点的初始化
//比如ListNode1(2); 创建了一个val为2的链表节点

2.创建一个头节点

ListNode *head = ListNode1(1);

3.添加其他节点

head->next = ListNode1(2);
head->next->next = ListNode1(3);

由于知道头节点的指针即可获得整个链表,可以理解为“将链表储存在了指向头节点的指针储存了整个链表”。

双链表

如何创建一个双链表

1.声明一个节点结构体

struct ListNode2{
    int val;
    ListNode2 *prev;
    ListNode2 *next;
    ListNode2(int x) : val(x), prev(nullptr), next(nullptr) {}
};

 2.创建节点

ListNode2 *Node1 = ListNode2(1);
ListNode2 *Node2 = ListNode2(2);
ListNode2 *Node3 = ListNode2(3);

3. 连接节点

Node2->prev = Node1;
Node2->next = Node3;

环状链表

其实就是双链表的头节点的prev指针指向了尾节点,尾节点的next指针指向了头节点。

//在创建双链表的基础上再加上
Node1->prev = Node3;
Node3->next = Node1;

学习笔记持续更新,欢迎大家关注,一起进步~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值