206. Reverse Linked List
做题历程:
- 本题做了不止2次了,本次耗时10分钟,独立解出
本题第一次做的时候确实把我折磨的够呛,不过以现在的眼光看,就是太简单了。。就是纯粹的基本功题,画一下图就全出来了,不过要记住加一个virtual node辅助
代码如下:
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode(int x) : val(x), next(NULL) {}
* };
*/
class Solution {
public:
ListNode* reverseList(ListNode* head) {
if (head == nullptr) {
return nullptr;
}
ListNode* node = head;
ListNode* next_node = head->next;
ListNode* virtual_node = new ListNode(-1);
node->next = nullptr;
while(next_node != nullptr) {
virtual_node->next = next_node;
next_node = next_node->next;
virtual_node->next->next = node;
node = virtual_node->next;
}
return node;
}
};