DFS traversal & Iterator