leetcode206. Reverse Linked List
Reverse a singly linked list.
click to show more hints.
Hint:
A linked list can be reversed either iteratively or recursively. Could you implement both?
没啥难度,主要是要求逻辑清晰
typedef struct ListNode {
int val;
ListNode *next;
ListNode(int x) : val(x), next(NULL) {}
}ListNode;
ListNode* reverseList(ListNode* head) {
ListNode* first_node = NULL;
ListNode* second_node = NULL;
ListNode* temp = NULL;
first_node = head;
second_node = NULL;
//handle first node
if (first_node != NULL) {
second_node = first_node->next;
first_node->next = NULL;
}
else {
return head;
}
while (second_node != NULL) {
temp = second_node->next;
second_node->next = first_node;
first_node = second_node;
second_node = temp;
}
return first_node;
}