Mid Coding

Flatten a binary tree into a linked list (preorder traversal)?

TreeNode prev = null;

void Flatten(TreeNode root) {

if (root == null) return;

Flatten(root.right);

Flatten(root.left);

root.right = prev;

root.left = null;

prev = root;

Explanation:

Postorder traversal (right-left-root) to flatten tree in place.

More from C# Programming Tutorial

All questions for this course