postorderTraversal<T> function

List<T> postorderTraversal<T>(
  1. BinaryTreeNode<T>? root
)

Postorder Traversal: Left -> Right -> Root

Useful for deleting trees or postfix expression evaluation.

Example:

final root = BinaryTreeNode<int>(10);
root.left = BinaryTreeNode<int>(5);
root.right = BinaryTreeNode<int>(15);
final result = postorderTraversal(root);
// result: [5, 15, 10]

Implementation

List<T> postorderTraversal<T>(BinaryTreeNode<T>? root) {
  final List<T> result = [];

  void postorder(BinaryTreeNode<T>? node) {
    if (node == null) return;
    postorder(node.left);
    postorder(node.right);
    result.add(node.value);
  }

  postorder(root);
  return result;
}