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)
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
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
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
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)
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]")
#!/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)