当前位置: 代码迷 >> 综合 >> hihoCoder | 翻转链表
  详细解决方案

hihoCoder | 翻转链表

热度:28   发布时间:2023-12-22 05:42:04.0

http://hihocoder.com/problemset/problem/1371?sid=983707

描述

翻转一个链表

特殊要求:请使用以下链表结构

class Node
{int value;Node next;
}

输入

输入包含多组数据。对于每组数据:

第一行是n,表示链表长度;当n=-1时,表示输入结束。(1 <= n <= 100)

第二行是n个整数,表示链表每一位所存储的内容。

输出

针对每组输入,输出翻转后的链表的内容。

样例输入

4
1 3 5 7
-1

样例输出

7 5 3 1

分析

再练习一下链表的基本操作。

C++

#include <iostream> #include <cstdio> #include <vector> #include <queue>using namespace std;class ListNode { public:int val;ListNode *next;ListNode (int val){this->val = val;this->next = NULL;} };int main() {int n;while (1) {cin >> n;if (n == -1) break;ListNode dummy(0), *cur = &dummy;// construct the linked listfor (int i = 0; i < n; ++i) {int val; cin >> val;cur->next = new ListNode(val);cur = cur->next;}// reverseListNode *head = dummy.next;ListNode *prev = NULL;while (head) {ListNode *next = head->next;head->next = prev;prev = head;head = next;}head = prev;// printwhile (head->next) {cout << head->val << " ";head = head->next;}cout << head->val << endl;} } 

转载于:https://www.cnblogs.com/ilovezyg/p/6389055.html