206. 反 转 链表 Ideas 关于链表的题目其实画个图就很清晰了。 可以想象成两个部分,左边是已经完成翻 转 的链表,以pre为头结点,右边是还未翻转的链表,以cur为头结点,每
206. 反转链表
Ideas
关于链表的题目其实画个图就很清晰了。
可以想象成两个部分,左边是已经完成翻转的链表,以pre为头结点,右边是还未翻转的链表,以cur为头结点,每次获取cur的下一个结点item,然后将cur的next指向pre,再将cur设置为item,继续处理下一个结点。
Code
C++
class Solution {public:
ListNode* reverseList(ListNode* head) {
ListNode* cur = head;
ListNode* pre = nullptr;
while (cur) {
ListNode* item = cur->next;
cur->next = pre;
pre = cur;
cur = item;
}
return pre;
}
};
Python
class Solution:def reverseList(self, head: ListNode) -> ListNode:
new_head = None
while head:
help_node = head.next
head.next = new_head
new_head = head
head = help_node
return new_head