面试题24:反转链表
2020-03-09 本文已影响0人
不会编程的程序猿甲
题目:
输入一个链表,反转链表后,输出新链表的表头。
解题思路:
这道题注意思考三个问题:输入的链表头指针是空或者输入的链表只有一个节点;反转后的链表出现断裂怎么办;如何保证返回的是反转后的头节点。具体的思路如下:
代码实现:
# -*- coding:utf-8 -*-
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution:
# 返回ListNode
def ReverseList(self, pHead):
# write code here
pre = None
current = pHead
reverseHead = None
while current != None:
pnext = current.next #当current不为空时,才有下一节点
if pnext == None:
reverseHead = current #如果下一节点为空,当前尾节点
current.next = pre
#变量更新
pre = current
current = pnext
return reverseHead
提交结果:
牛客网提交结果.png