21xrx.com
2025-03-30 20:48:37 Sunday
文章检索 我的文章 写文章
C++使用头插法输出链表
2023-07-03 11:18:18 深夜i     14     0
C++ 头插法 输出 链表

链表是一种常见的数据结构,是由若干节点组成的数据结构。在C++语言中,我们可以使用头插法来输出链表。头插法的原理是:每次将新的节点插入到链表头部,并将新节点的next指针指向原来头节点。使用头插法可以在不改变原链表的情况下输出链表。

下面是C++代码实现:

#include<iostream>
using namespace std;
struct ListNode {
  int val; //节点的值
  ListNode* next; //指向下一个节点
  ListNode(int x) : val(x), next(NULL) {} //初始化函数
};
ListNode* createList(int arr[], int n)//从数组创建链表
{
  ListNode* head = NULL;
  ListNode* temp = NULL;
  for (int i = n - 1; i >= 0; i--) {
    temp = new ListNode(arr[i]);
    temp->next = head;
    head = temp;
  }
  return head;
}
void printList(ListNode* head)//输出链表
{
  while (head != NULL)
    cout << head->val << " ";
    head = head->next;
  
  cout << endl;
}
int main()
{
  int arr[] = 1;
  int n = sizeof(arr) / sizeof(int);
  ListNode* head = createList(arr, n);
  printList(head);
  return 0;
}

输出结果:

5 4 3 2 1

可以看到,使用头插法输出链表可以将链表翻转。这是由于头插法在每次插入节点时都将新的节点插入到链表头部,使得原来的尾节点变成了新的头节点。因此,头插法输出链表的顺序和原链表相反。

  
  

评论区

请求出错了