题目描述:
输入一个链表,反转链表后,输出新链表的表头。
示例1
输入
{1,2,3}
返回值
{3,2,1}
题解:
用res指针来指向反转后的代码,cur指针用于遍历head链表,然后用temp指针存储cur的下一个节点,以免信息丢失。
即 1->2->3变为1<-2<-3这种形式
三种语言代码:
C++:
class Solution {
public:
ListNode* ReverseList(ListNode* pHead) {
ListNode *res = NULL;
ListNode *cur = pHead;
while(cur != NULL){
ListNode *temp = cur->next;
cur->next = res;
res = cur;
cur = temp;
}
return res;
}
};
Java:
public class Solution {
public ListNode ReverseList(ListNode head) {
ListNode res = null;
ListNode cur = head;
while(cur != null){
ListNode temp = cur.next;
cur.next = res;
res = cur;
cur = temp;
}
return res;
}
}
Python3:
class Solution:
# 返回ListNode
def ReverseList(self, pHead):
# write code here
res = None
cur = pHead
while cur != None:
temp = cur.next
cur.next = res
res = cur
cur = temp
return res



京公网安备 11010502036488号