1.1链表逆序

时间:2019-09-04
本文章向大家介绍1.1链表逆序,主要包括1.1链表逆序使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

链表逆序

有头结点的链表逆序

# -*-coding:utf-8-*-
# 有头结点的链表逆序
class Node:
    def __init__(self, data=None, next=None):
        self.data = data
        self.next = next


def print_link(head):
    cur = head.next
    while cur.next != None:
        print(cur.data, end=' ')
        cur = cur.next
    print(cur.data)


def con_link(n):
    head = Node()
    cur = head
    for i in range(n):
        node = Node(i)
        cur.next = node
        cur = node
    print_link(head)
    reverse_link(head)

def reverse_link(head):
    if head.next == None or head == None:
        return
    pre = head.next
    cur = head.next.next
    pre.next = None
    while cur.next != None:
        next = cur.next
        cur.next = pre
        pre = cur
        cur = next
    cur.next = pre
    head.next = cur
    print_link(head)



if __name__ == '__main__':
    con_link(5)

无头结点的链表逆序

# -*-coding:utf-8-*-
class Node:
    def __init__(self, data, next=None):
        self.data = data
        self.next = next


def print_link(head):
    cur = head
    while cur.next != None:
        print(cur.data, end=' ')
        cur = cur.next
    print(cur.data)


def con_link(n):
    head = Node(0)
    cur = head
    for i in range(1, n):
        node = Node(i)
        cur.next = node
        cur = node
    print_link(head)
    reverse_link(head)

def reverse_link(head):
    if head == None:
        return
    pre = head
    cur = head.next
    pre.next = None
    while cur.next != None:
        next = cur.next
        cur.next = pre
        pre = cur
        cur = next
    cur.next = pre
    head = cur
    print_link(head)

if __name__ == '__main__':
    con_link(10)

原文地址:https://www.cnblogs.com/miao-study/p/11458407.html