Beispiel #1
0
 def add(self, item):
     current = self.head
     pre = None
     temp = Node(item)
     while current != None:
         if current.getData() > item:
             break
         else:
             pre = current
             current = current.getNext()
     if pre == None:
         temp.setNext(self.head)
         self.head = temp
     else:
         temp.setNext(current)
         pre.setNext(temp)
Beispiel #2
0
 def insert(self, pos, item):
     index = 0
     current = self.head
     pre = None
     temp = Node(item)
     if pos == index:
         self.add(item)
     else:
         while current != None:
             index += 1
             pre = current
             current = current.getNext()
             if index == pos:
                 temp.setNext(current)
                 pre.setNext(temp)
                 return
         return "Could not insert into the LinkList"
Beispiel #3
0
    def copyRandomList(self, head: 'Node') -> 'Node':
        if not head:
            return head
        dumpy = head
        while dumpy:
            new_node = Node(dumpy.val, next=dumpy.next)
            dumpy.next = new_node
            dumpy = dumpy.next.next
        dumpy = head
        while dumpy:
            new_node = dumpy.next
            new_node.random = dumpy.random.next if dumpy.random else None
            dumpy = dumpy.next.next

        new_head = head.next
        dumpy = head
        while dumpy:
            new_node = dumpy.next
            dumpy.next = dumpy.next.next
            new_node.next = new_node.next.next if new_node.next else None
            dumpy = dumpy.next
        return new_head
Beispiel #4
0
 def test_node(self):
     value = 10
     n = Node(value)
     n.print()
     assert value == n.val
     assert n.next is None
Beispiel #5
0
 def add(self, item):
     temp = Node(item)
     temp.setNext(self.head)  #设置指向表头的下一个节点
     self.head = temp  #设置表头
Beispiel #6
0
 def append(self, item):
     current = self.head
     temp = Node(item)
     while current.next != None:
         current = current.getNext()
     current.setNext(temp)