threadedInorderTraversal<T> function

List<T> threadedInorderTraversal<T>(
  1. ThreadedBinaryTreeNode<T>? root
)

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;
}