C++ 链表翻转
2017-08-09 12:11
148 查看
#include <iostream>
#include <string>
struct Node {
int value;
Node * next;
Node(int data) : value(data), next(nullptr) {};
};
Node * reverse(Node * head);
void Print(Node * head);
int main()
{
Node node1(5);
Node node2(10);
Node node3(15);
Node node4(20);
node1.next = &node2;
node2.next = &node3;
node3.next = &node4;
node4.next = nullptr;
Node *head = &node1;
std::cout << "Before reverse: " << std::endl;
Print(head);
std::cout << "After reverse: " << std::endl;
Print(reverse(head));
system("pause");
return 0;
}
Node * reverse(Node * head)
{
if (head == nullptr)
{
return head;
}
Node * pre = nullptr;
Node * next = nullptr;
while (head != nullptr)
{
next = head->next;
head->next = pre;
pre = head;
head = next;
}
return pre;
}
void Print(Node * head)
{
while (head != nullptr)
{
std::cout << head->value << std::endl;
head = head->next;
}
}
#include <string>
struct Node {
int value;
Node * next;
Node(int data) : value(data), next(nullptr) {};
};
Node * reverse(Node * head);
void Print(Node * head);
int main()
{
Node node1(5);
Node node2(10);
Node node3(15);
Node node4(20);
node1.next = &node2;
node2.next = &node3;
node3.next = &node4;
node4.next = nullptr;
Node *head = &node1;
std::cout << "Before reverse: " << std::endl;
Print(head);
std::cout << "After reverse: " << std::endl;
Print(reverse(head));
system("pause");
return 0;
}
Node * reverse(Node * head)
{
if (head == nullptr)
{
return head;
}
Node * pre = nullptr;
Node * next = nullptr;
while (head != nullptr)
{
next = head->next;
head->next = pre;
pre = head;
head = next;
}
return pre;
}
void Print(Node * head)
{
while (head != nullptr)
{
std::cout << head->value << std::endl;
head = head->next;
}
}
相关文章推荐
- C++循环链表中进行元素的翻转
- C++实现链表翻转的两种方法
- C++循环链表中进行元素的翻转
- [C++]链表部分翻转
- C++循环链表中进行元素的翻转
- c++翻转链表
- C++循环链表中进行元素的翻转
- 链表的C++创建及翻转
- 翻转链表的C++实现
- C++循环链表中进行元素的翻转
- C++循环链表中进行元素的翻转
- C++中链表的创建、输出、节点删除、节点插入、翻转、清空
- C++循环链表中进行元素的翻转
- C++循环链表中进行元素的翻转
- [C++]链表部分翻转
- 单链表翻转---C++实现
- C++循环链表中进行元素的翻转
- C++循环链表中进行元素的翻转
- 翻转链表:LinkList:Reverse a LinkList has some interesting method(C++)
- 翻转链表 - C++