循环链表

mvn exec:java -Dexec.mainClass="com.hbase.example.RedisDemo"
循环链表:没有终点的旅程

循环链表是一种特殊的链表,它的尾节点不是指向空值,而是指向头节点,形成一个环形结构。

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

循环链表的初始化略有不同:

class CircularList {
private:
    CircularListNode* head;
    
public:
    CircularList() : head(nullptr) {}
    
    void insert(int val) {
        CircularListNode* newNode = new CircularListNode(val);
        if (head == nullptr) {
            head = newNode;
            head->next = head;  // 指向自己
        } else {
            newNode->next = head->next;
            head->next = newNode;
        }
    }
};

循环链表的应用场景包括:

  1. 轮转调度:操作系统中的进程调度
  2. 约瑟夫环问题:经典的数学问题
  3. 循环队列:固定大小的缓冲区
posted @ 2026-01-02 19:45  f-52Hertz  阅读(40)  评论(1)    收藏  举报