Folgendes ist eine mögliche iterative Lösung mit Laufzeit O(n):

```python
def count_nodes_iterative(root):
  if not root:
    return 0
  stack = [ root ]
  count = 0
  while len(stack) > 0:
    node = stack.pop()
    if not node:
      continue
    stack += [node.left, node.right]
    count += 1
  return count
```

Bei dieser Implementierung werden alle Knoten, die noch nicht gezählt wurden in einer Variablen `stack` gespeichert. Beim Zählen werden die Kinder des aktuellen Knotens gespeichert, so dass Zählung und Erkundung des Baumes gleichzeitig passieren.
ต่อไปนี้เป็นวิธีแก้ปัญหาแบบวนซ้ำที่เป็นไปได้ด้วยรันไทม์ O(n): ```python def count_nodes_iterative(root): หากไม่ใช่ root: ให้ส่งคืน 0 stack = [ root ] count = 0 ในขณะที่ len(stack) > 0: node = stack pop () หากไม่ใช่โหนด: ดำเนินการต่อสแต็ก += [node.left, node.right] นับ += 1 จำนวนการส่งคืน ``` ในการใช้งานนี้ โหนดทั้งหมดที่ยังไม่ได้นับจะถูกเก็บไว้ในตัวแปร `stack` เมื่อทำการนับ ลูกของโหนดปัจจุบันจะถูกจัดเก็บ เพื่อให้การนับและการสำรวจต้นไม้เกิดขึ้นในเวลาเดียวกัน
spam fails_task lang_mismatch pii not_appropriate hate_speech sexual_content quality toxicity humor helpfulness creativity violence