单链表反转

分类:N05_python

标签:

# 单链表测试

class SingleNode(object):
    """单链表的节点"""
    def __init__(self,item):
        #_item存放数据元素
        self.item = item
        #_next是下一个节点的标识
        self.next = None

class SingleLinkList(object):
    def __init__(self):  
        self.__head = None  # 初始化链表头节点为None  
        
    """单链表"""
    def add(self,item):
        """头部添加元素"""
        node  = SingleNode(item)
        #将新节点的链接域next指向头节点,即__head指向的位置
        node.next = self.__head
        #将链表的头__head指向新节点
        self.__head = node
    def print_list(self):
        """遍历链表并打印其元素"""
        current = self.__head
        while current:
            print(current.item, end=' ')
            current = current.next
        print()  # 打印换行符,以便输出更整洁
    def revers_list(self):
        current = self.__head
        pre = None
        while (current != None):
            next = current.next
            current.next = pre
            pre = current
            current = next
        self.__head = pre
if __name__ == "__main__":
    ll = SingleLinkList()
    
    ll.add(1)
    ll.add(2)
    ll.add(3)
    # 打印链表  
    ll.print_list()
    ll.revers_list()
    ll.print_list()


修改内容