threadedInorderTraversal<T> function
Implementation
List<T> threadedInorderTraversal<T>(ThreadedBinaryTreeNode<T>? root) {
final result = <T>[];
ThreadedBinaryTreeNode<T>? current = root;
while (current != null) {
while (current!.left != null) {
current = current.left as ThreadedBinaryTreeNode<T>?;
}
while (current != null) {
result.add(current.value);
if (current.rightThread != null) {
current = current.rightThread;
} else {
current = current.right as ThreadedBinaryTreeNode<T>?;
break;
}
}
}
return result;
}