might as well make linkedlist generic
detect_balance and find_path