コード例 #1
0
ファイル: kth_from_last.py プロジェクト: praneetb/preparation
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))
コード例 #2
0
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
コード例 #3
0
def main():
    head = linkedlist.create_list(20, 10)
    linkedlist.print_list(head)
    new_list = rem_dups(head)
    linkedlist.print_list(new_list)
コード例 #4
0
        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
コード例 #5
0
ファイル: del_mid.py プロジェクト: praneetb/preparation
def main():
  _list = linkedlist.create_list(5, 10)
  linkedlist.print_list(_list)
  _list = del_mid(_list)
  linkedlist.print_list(_list)