赞
踩
给定一个有序链表进行反转
- #include <iostream>
- using namespace std;
- #include <vector>
-
- struct ListNode
- {
- int value;
- ListNode* next;
- ListNode(int x):value(x),next(NULL) {}
- };
- ListNode* reverseList(ListNode* head)
- {
- ListNode* temp;
- ListNode* pre = NULL;
- ListNode* cur = head;
- while (cur)
- {
- temp = cur->next;
- cur->next = pre;
-
- pre = cur;
- cur = temp;
- }
- return pre;
- }
- void printList(ListNode* head)
- {
- while (head)
- {
- cout << head->value;
- head = head->next;
- if (head)
- cout << "->";
- }
- cout << endl;
- }
- int main()
- {
- //创建链表
- ListNode* head = new ListNode(1);
- ListNode* n1 = new ListNode(2);
- ListNode* n2 = new ListNode(3);
- ListNode* n3 = new ListNode(4);
- ListNode* n4 = new ListNode(5);
- ListNode* n5 = new ListNode(6);
- head->next = n1;
- n1->next = n2;
- n2->next = n3;
- n3->next = n4;
- n4->next = n5;
- n5->next = NULL;
- cout << "反转前:" << endl;
- printList(head);
- ListNode* node=reverseList(head);
- cout << "反转后:" << endl;
- printList(node);
- system("pause");
- return 0;
- }
输出结果
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。