题目:定义一个函数,输入一个链表的头结点,反转该链表并输出反转后链表的头结点,链表节点定义如下:
class ListNode:
def __init__(self, x):
self.val = x
self.next = None
思路一:新建一个链表,利用头插法反转该链表
class ListNode:
def __init__(self, x):
self.val = x
self.next = None
class Solution:
# 返回ListNode
def ReverseList(self, pHead):
p1=ListNode(0)
p=pHead
while p!=None:
q=p.next
p.next=p1.next
p1.next=p
p=q
return p1.next
思路二:三个指针在链表上同时滑动。
# -*- coding:utf-8 -*-
class ListNode:
def __init__(self, x):
self.val = x
self.next = None
class Solution:
# 返回ListNode
def ReverseList(self, pHead):
head=pHead
pre=None
reversehead=None
while head!=None:
q=head.next
if head==None:
reversehead=head
head.next=pre
pre=head
head=q
return reversehead
1103

被折叠的 条评论
为什么被折叠?



