问题描述:给出一个链表1->2->3->null,这个翻转后的链表为3->2->1->null。
解题思路:老师给的课件中定义一个新的链表,令系统链表的下一个元素赋值给空的第二个新链表,将第一个新的链表给系统链表的下一个元素,将系统链表添加到第一个新的链表上 。将第二个新链表给系统链表然后进行循环。
实验代码:
class Solution {
public:
/**
* @param head: The first node of linked list.
* @return: The new head of reversed linked list.
*/
ListNode *reverse(ListNode *head) {
// write your code here
ListNode *prev = NULL;
while (head != NULL) {
ListNode *temp = head->next;
head->next = prev;
prev = head;
head = temp;
}
return prev;
}
};
个人感想:循环时要保存当前值并继承上次保存的值。