链表怎么走
约 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 个吗?
登录 后可看答案