leetcode-反转链表206
Posted hornets
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode-反转链表206相关的知识,希望对你有一定的参考价值。
206. 反转链表
反转一个单链表。
示例:
输入: 1->2->3->4->5->NULL
输出: 5->4->3->2->1->NULL
进阶:
你可以迭代或递归地反转链表。你能否用两种方法解决这道题?
class Node():
def __init__(self, data):
self.val = data
self.next = None
def reverse(head):
"""记录三个节点,前一个prev节点,当前cure节点,和next下个节点"""
root = head
res = None
while root is not None:
next_node = root.next # 记录下一个
root.next = res # 当前指向前一个
res = root # 当前赋值给前一个,也就是整体后移
root = next_node # next赋值给当前,也就是整体后移
return res
if __name__ == "__main__":
node1 = Node(1)
node2 = Node(2)
node3 = Node(3)
node4 = Node(4)
node5 = Node(5)
node1.next = node2
node2.next = node3
node3.next = node4
node4.next = node5
print(reverse(node1).val)
以上是关于leetcode-反转链表206的主要内容,如果未能解决你的问题,请参考以下文章
剑指offerJZ15——反转链表。leetcode206.反转链表