链表怎么走

10 分钟

链表没有编号,想看里面的东西只能"顺藤摸瓜"。从头节点出发,看完当前这个,就顺着它手里牵的 next 走到下一个,再看、再走,直到手里牵的是空(nullptr),说明到末尾了,停下。

#include <iostream>
using namespace std;
struct Node { int val; Node* next; };
int main() {
    Node c{30, nullptr}, b{20, &c}, a{10, &b};
    Node* p = &a;            // 从头开始
    while (p != nullptr) {
        cout << p->val << " ";
        p = p->next;         // 往后走一步
    }
    return 0;
}

小纸条问:链表能像数组那样直接取第 5 个吗?不能——你必须从头一步步走到第 5 个,没有捷径。初学者常见的坑是循环条件写成 p->next != nullptr,那样会漏掉最后一个节点;应该判断 p != nullptr 才走得完整条链。

小纸条

链表能像数组那样直接取第 5 个吗?

登录 后可看答案

链表怎么走 · C++ 入门 · op599 课程