@Override
	public GTreeNode next() {
		if (!it.hasNext()) {
			if (stack.isEmpty()) {
				return null;
			}
			it = stack.pop();
		}
		lastNode = it.next();
		if (lastNode.getChildCount() > 0) {
			if (it.hasNext()) {
				stack.push(it);
			}
			it = lastNode.getChildren().iterator();
		}
		return lastNode;
	}
Implements an iterator over all GTreeNodes in some gTree (or subtree).  The nodes are
return in depth first order.
Ghidra/Framework/Docking/src/main/java/docking/widgets/tree/support/DepthFirstIterator.java