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)10
* @param {TreeNode} root11
* @return {void} Do not return anything, modify root in-place instead.13
var flatten = function (root) {14
const dfs = (node) => {17
if (!node.left && !node.right) return node;19
const leftNode = node.left;20
const rightNode = node.right;22
const leftTree = dfs(leftNode);23
const rightTree = dfs(rightNode);25
if (leftTree) leftTree.right = rightNode;28
node.right = leftNode || rightNode;30
return rightTree || leftTree;