剑指offer第三天之反转链表
输入一个链表,反转链表后,输出新链表的表头
java:
/*
data:2020517
author:魏振东
fun:输入一个链表,反转链表后,输出新链表的表头。
* */
public class Solution {
public ListNode ReverseList(ListNode head) {
ListNode r=null;
ListNode p=null;
//当前节点是head,p为当前节点的前一节点,r为当前节点的下一节点
while(head!=null)
{
r=head.next;
head.next=p;
//p向后移动一位,当前节点同样向后移动一位
p=head;
head=r;
}
return p;
}
}
c++:
class Solution {
public:
ListNode* ReverseList(ListNode* pHead) {
ListNode* r=NULL;
ListNode* node=pHead;
ListNode* p=NULL;
while(node!=NULL)
{
r=node->next;
node->next=p;
p=node;
node=r;
}
return p;
}
};
python:
class Solution:
# 返回ListNode
def ReverseList(self, pHead):
# write code here
t=None;
p=None;
while pHead!=None:
t = pHead.next
pHead.next = p
p=pHead
pHead =t
return p;