I. 问题描述
翻转一个链表 样例给出一个链表1->2->3->null,这个翻转后的链表为3->2->1->null。
II. 解题思路
调换前两个节点顺序:
保存前一个结点的下一个结点;
令第一个结点覆盖下一个;
保存的结点再覆盖第一个结点。
↑依次遍历。
III. 代码实现
class Solution
{
public:
ListNode *reverse(ListNode *head)
{
ListNode *prev = NULL;
while (head != NULL)
{
ListNode *temp =head->next;
head->next = prev;
prev = head;
head = temp;
}
return prev;
}
};
IV. 个人感悟
有效的进行替换和遍历,理清各节点间该如何替换的思路。