示例#1
0
def main():
    true_palindrome = LinkedList()
    true_palindrome.add_multiple([1])
    print palindrome(true_palindrome)

    false_palindrome = LinkedList()
    false_palindrome.add_multiple([1, 2, 2, 1])
    print palindrome(false_palindrome)
示例#2
0
def main():
    ll1=LinkedList()
    ll2=LinkedList()

    ll1.add_multiple([2,1,5])
    ll2.add_multiple([4,4,3,8])

    print ll1,ll2
    ll_sum=sum_lists(ll1,ll2)
    print ll_sum
示例#3
0
def test_linked_list_intersection():
    shared = LinkedList()
    shared.add_multiple([1, 2, 3, 4])

    a = LinkedList([10, 11, 12, 13, 14, 15])
    b = LinkedList([20, 21, 22])

    a.tail.next = shared.head
    a.tail = shared.tail
    b.tail.next = shared.head
    b.tail = shared.tail

    # should be 1
    assert intersection(a, b).value == 1
示例#4
0
def sum_lists_followup(ll_a, ll_b):
    # pad shorter list with zeros
    if len(ll_a) > len(ll_b):
        for _ in range(len(ll_a) - len(ll_b)):
            ll_b.add_to_beginning(0)
    else:
        for _ in range(len(ll_b) - len(ll_a)):
            ll_a.add_to_beginning(0)

    result = 0
    n1, n2 = ll_a.head, ll_b.head
    while n1 and n2:
        result = (result * 10) + n1.value + n2.value
        n1, n2 = n1.next, n2.next

    ll = LinkedList()
    ll.add_multiple([int(i) for i in str(result)])

    return ll
示例#5
0
from linked_list import LinkedList
from LL import MyLL


def delete_middle_node(node):
    node.value = node.next.value
    node.next = node.next.next


if __name__ == "__main__":
    ll = LinkedList()
    ll.add_multiple([1, 2, 3, 4])
    middle_node = ll.add(5)
    ll.add_multiple([7, 8, 9])

    print(ll)
    delete_middle_node(middle_node)
    print(ll)
示例#6
0
class LinkedListTest(unittest.TestCase):
    
    def setUp(self):
        self.list=LinkedList()

    def test_add(self):
        self.list.add(1)
        self.assertEqual(self.list.get_size(),1)
    
    def test_addMultiple(self):
        for i in range(4):
            self.list.add(i)
        self.assertEqual(self.list.get_size(),4)
    
    def test_add_to_index(self):
        self.list.add_to_index(5,0)
        self.assertEqual(self.list.get(0),5)
        self.list.add(1)
        self.list.add(3)
        self.list.add_to_index(2,1)
        self.assertEqual(self.list.get(1),2)
        self.list.add_to_index(0,0)
        self.assertEqual(self.list.get(0),0)
        self.list.add_to_index(4,4)
        self.assertEqual(self.list.get(4),4)
    
    def test_get(self):
        self.list.add_multiple(1,2,3)
        self.assertEqual(self.list.get(1),2)
    
    def test_get_last(self):
        self.list.add_multiple(1,2,3)
        self.assertEqual(self.list.get_last(),3)
    
    def test_get_first(self):
        self.list.add_multiple(1,2,3)
        self.assertEqual(self.list.get_first(),1)
    
    def test_remove(self):
        self.list.add_multiple(1,2,3,4,5)
        self.list.remove(1)
        self.assertEqual(self.list.get(1),3)
        self.list.remove(0)
        self.assertEqual(self.list.get(0),3)
    
    def test_remove_last(self):
        self.list.add_multiple(1,2,3,4,5)
        self.list.remove_last()
        self.assertEqual(self.list.get_last(),4)

    def test_pop(self):
        self.list.add_multiple(1,2,3)
        self.assertEqual(self.list.pop(),3)
        self.assertEqual(self.list.pop(),2)
    
    def test_get_size(self):
        self.assertEqual(self.list.get_size(),0)
        self.list.add_multiple(1,2,3)
        self.assertEqual(self.list.get_size(),3)
    
    def test_is_empty(self):
        self.assertTrue(self.list.is_empty())
        self.list.add_multiple(1,2,3)
        self.assertFalse(self.list.is_empty())

    def test_str(self):
        self.list.add(1)
        self.list.add(4)
        self.list.add(3)
        self.assertEqual(str(self.list),"[1,4,3]")
示例#7
0
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Mon Jan 28 12:54:49 2019

@author: pabloruizruiz
"""

from linked_list import LinkedList


def delete_middle_node(node):
    message = "Node to delete can't be head or tail nodes from the list"
    assert node.next is not None, message
    node.data = node.next.data
    node.next = node.next.next


ll = LinkedList()
ll.add_multiple([7, 4, 3])
middle_node = ll.add(5)
ll.add_multiple([7, 4, 3])

print(ll)
delete_middle_node(middle_node)
print(ll)