def main(): print("Find Kth element from last") _list = linkedlist.create_list(10, 10) linkedlist.print_list(_list) for i in range(13): res = FindKthElement(_list, i) if res: value = res.value else: value = -1 print("\t%d from last: %d" % (i, value))
def rem_dups(head): if head == None or head.next == None: return head #import pdb; pdb.set_trace() hash_list = {} phead = head hash_list[head.value] = 1 pphead = head.next while (pphead): if hash_list.get(pphead.value) == None: hash_list[pphead.value] = 1 phead = pphead else: phead.next = pphead.next pphead = pphead.next print len(hash_list), len(linkedlist.print_list(head)) return head
def main(): head = linkedlist.create_list(20, 10) linkedlist.print_list(head) new_list = rem_dups(head) linkedlist.print_list(new_list)
if child is None: break else: child = child.child return parent def revert_recursive(root, parent): newroot = None if root.child: newroot = revert_recursive(root.child, root) else: newroot = root root.child = parent return newroot if __name__ == '__main__': import pprint root = build_list() print_list(root) print newroot = revert_iterative(root) print_list(newroot) print newroot = revert_recursive(newroot, None) print_list(newroot) print
def main(): _list = linkedlist.create_list(5, 10) linkedlist.print_list(_list) _list = del_mid(_list) linkedlist.print_list(_list)