Flatten Binary Tree to Linked List LeetCode solution in JavaScript

1
/**
2
* Definition for a binary tree node.
3
* function TreeNode(val, left, right) {
4
* this.val = (val===undefined ? 0 : val)
5
* this.left = (left===undefined ? null : left)
6
* this.right = (right===undefined ? null : right)
7
* }
8
*/
9
/**
10
* @param {TreeNode} root
11
* @return {void} Do not return anything, modify root in-place instead.
12
*/
13
var flatten = function (root) {
14
const dfs = (node) => {
15
if (!node) return;
16

17
if (!node.left && !node.right) return node;
18

19
const leftNode = node.left;
20
const rightNode = node.right;
21

22
const leftTree = dfs(leftNode);
23
const rightTree = dfs(rightNode);
24

25
if (leftTree) leftTree.right = rightNode;
26

27
node.left = null;
28
node.right = leftNode || rightNode;
29

30
return rightTree || leftTree;
31
};
32

33
dfs(root);
34
return root;
35
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0