Flatten Binary Tree to Linked List

MediumLinked ListStackTreeDepth-First SearchBinary Tree

Solution

import { TreeNode } from '@algorithm/lib';
 
export function flatten(root: TreeNode | null): void {
  let lastNode: TreeNode | null = null;
  function traverse(node: TreeNode | null) {
    if (node === null) {
      return null;
    }
    traverse(node.right);
    traverse(node.left);
    node.right = lastNode;
    node.left = null;
    lastNode = node;
  }
  traverse(root);
}