單鏈表是一種線性數據結構,由一系列節點組成,每個節點包含數據域與指向下一個節點的指針。它支持動態內存分配,插入刪除僅需修改指針,但查找需 O(n) 時間。
struct Node {
int data;
Node* next;
Node(int val = 0, Node* nxt = nullptr) : data(val), next(nxt) {}
};
以下代碼演示如何逐個創建節點並串聯:
Node* head = new Node(44);
head->next = new Node(72);
head->next->next = new Node(220);
void show(Node* head) {
Node* p = head;
while (p) {
cout << p->data;
if (p->next) cout << "->";
p = p->next;
}
cout << endl;
}
將頭指針私有化,提供 insert()、remove()、find() 等公共接口,並實現析構函數釋放所有節點,避免內存洩漏。
next。delete,不能僅 delete head。嘗試實現:尾插法建表、頭插法建表、逆序鏈表、合併兩個有序鏈表、檢測環(快慢指針)。