hello there, can someone please explain how the tree is traversed in this quiz, how the value travels through the traverse function:

```
class TreeNode:
def __init__(self, value):
self.value = value
self.children = []
def add_child(self, child_node):
self.children.append(child_node)
def traverse(self):
nodes_to_visit = [self]
while len(nodes_to_visit) > 0:
current_node = nodes_to_visit.pop()
nodes_to_visit += current_node.children
root = TreeNode("A")
first_child = TreeNode("B")
second_child = TreeNode("C")
root.add_child(first_child)
root.add_child(second_child)
root.traverse()
```

does âAâ âBâ âCâ go into the ânode_to_visitâ list when it is called by âroot.traverseâ ??

if so, while âcurrent_nodeâ starts to .pop() the values, why do we have this line ânodes_to_visit += current_node.childrenâ.

doesnt this line make the loop infinite because we are popping and adding again?