added level order traversal