链表

链表笔记哦
链表(linked list)是一种线性数据结构,其中的每个元素都是一个节点对象,各个节点通过“引用”相连接。引用记录了下一个节点的内存地址,通过它可以从当前节点访问到下一个节点。

链表的设计使得各个节点可以分散存储在内存各处,它们的内存地址无须连续。
链表的组成单位是节点(node)对象。每个节点都包含两项数据:节点的“值”和指向下一节点的“引用”。

链表的首个节点被称为“头节点”,最后一个节点被称为“尾节点”。
尾节点指向的是“空”,它在 Java、C++ 和 Python 中分别被记为 null、nullptr 和 None 。
在 C、C++、Go 和 Rust 等支持指针的语言中,上述“引用”应被替换为“指针”。

链表节点 ListNode 除了包含值,还需额外保存一个引用(指针)。因此在相同数据量下,链表比数组占用更多的内存空间。

class ListNode:
"""链表节点类"""
def init(self, val: int):
self.val: int = val # 节点值
self.next: ListNode | None = None # 指向下一节点的引用

/* 链表节点结构体 */
struct ListNode {
int val; // 节点值
ListNode *next; // 指向下一节点的指针
ListNode(int x) : val(x), next(nullptr) {} // 构造函数
};

posted @ 2025-03-18 22:37  ZNH  阅读(27)  评论(0)    收藏  举报