天天看點

Python Linked-list

# coding: utf-8
#
# linked-list demo
#


class Node:
    def __init__(self,data=None):
        self.pre_node = None
        self.next_node = None
        self.data = data 

class LinkedList:
    def __init__(self):
        self.head=None
        self.tail=None
        self.len=0

    def is_empty_list(self,node):
        if self.head is None:
            self.head = self.tail = node
            return True
        return False

    def _rpush(self,node):
        self.len += 1
        if not self.is_empty_list(node):
            self.tail.next_node = node
            node.pre_node = self.tail
            self.tail = node
        
    def _lpush(self,node):
        self.len += 1
        if not self.is_empty_list(node):
            self.head.pre_node = node
            node.next_node = self.head
            self.head = node

    def rpush(self,data):
        self._rpush(Node(data))
        
    def lpush(self,data):
        self._lpush(Node(data))
           

轉載于:https://my.oschina.net/tasker/blog/1579412