21xrx.com
2024-11-10 00:42:34 Sunday
登录
文章检索 我的文章 写文章
C++使用头插法输出链表
2023-07-03 11:18:18 深夜i     --     --
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

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

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复