反转链表
反转链表
一、有关python基础知识
1、python3新增 – 箭头的作用
函数参数中的冒号是参数的类型建议符,告诉程序员希望传入的实参的类型(这个类型也可以自己定义的类)。 函数后面跟着的箭头是函数返回值的类型建议符,用来说明该函数返回的值是什么类型。
2、if not
Python 中的 if 语句检查一个特定的条件,如果条件为真,则执行一个代码块。 if not 的作用与 if 语句相反。它测试一个条件是否为假,然后执行一些语句。
3、指针的用法
pre = None
二、思路
1、迭代法
图解反转链表
class Solution:
def reverseList(self, head: ListNode) -> ListNode:
pre = None
cur = head
while (cur is not None):
temp = cur.next
cur.next = pre
pre = cur
cur = temp
return pre
问题: 1、null和None的区别
- None是一个对象,而NULL是一个类型。
- Python中没有NULL,只有None,None有自己的特殊类型NoneType。
- None不等于0、任何空字符串、False等。
2、递归法
class Solution:
def reverseList(self, head: ListNode) -> ListNode:
def reverse(pre,cur):
if cur is None:
return pre
temp = cur.next
cur.next = pre
return reverse(cur,temp)
return reverse(None,head)
|