本文参考c++中的单链表
链表的结构
链表的每个节点由两部分组成:数据成员和指针。数据成员用于存储数据,指针指向链表的下一个节点。
非空链表的第一个结点称为链表的头。
要访问链表中的结点,需要有一个指向链表头的指针 ( 比如下面例子中的ptr ) 。从链表头开始,可以按照存储在每个结点中的后继指针访问链表中的其余结点。
最后一个结点中的后继指针被设置为 nullptr 以指示链表的结束。
ListNode* removeNthFromEnd(ListNode* head) {
ListNode* ptr = head;
while(ptr!=nullptr)
{
cout<<ptr->value<<" ";
ptr = ptr->next;
}
}
单链表的初始化
为了在 C++ 中表示链表,需要有一个表示链表中单个结点的数据类型。这样一个数据类型不但需要包含要存储的数据结构,还要有一个指向另一个相同类型结点的指针。
假设每个结点将存储一个类型为 double 的数据项,则可以声明以下类型来存放结点:
struct ListNode
{
double value;//节点的数据部分
ListNode *next;//指向下一个节点的后继指针
ListNode(double valuel, ListNode *nextl)
{
value = value1;
next = next1;
}
};
链表的创建
ListNode* forth = new ListNode(4, nullptr);
ListNode* third = new ListNode(3, forth);
ListNode* second = new ListNode(2, third);
ListNode* first = new ListNode(1, second);
遍历链表
ListNode *ptr = numberList;
while (ptr != nullptr)
{
cout << ptr->value << " "; //处理结点(显示结点内容)
ptr = ptr->next; //移动到下一个结点
}