206. Reverse Linked List
Example:
Input: 1->2->3->4->5->NULL
Output: 5->4->3->2->1->NULL
1.是否需要定义链表节点数据结构
2.链表节点是无序的,不能像数组直接通过索引来找到任意节点;
链表节点指针都是指向下一个节点
3.是否可以通过实现指针的反转来实现链表的反转
或者直接建立新的节点,赋值进去即可?
class ListNode(object):
def __init__(self,x):
self.value = x
self.next = None
#class solution(object):
def reverseList(head):
prev = None
while head:
cur = head
head = head.next
cur.next = prev
prev = cur
return prev
#构造节点
head = ListNode(1)
p2 = ListNode(2)
p3 = ListNode(3)
p4 = ListNode(4)
p5 = ListNode(5)
#构造链表
head.next = p2
p2.next = p3
p3.next = p4
p4.next = p5
#输出反转后的值
p = reverseList(head)
while p:
print(p.value)
p = p.next