给你二叉搜索树的根节点 root ,该树中的 恰好 两个节点的值被错误地交换。请在不改变其结构的情况下,恢复这棵树 。
1234567891011121314151617
var recoverTree = function (root) { const [nodes, values] = [[], []] const searchTree = (node) => { if (!node) { return } searchTree(node.left) nodes.push(node) values.push(node.val) searchTree(node.right) } searchTree(root) values.sort((a, b) => a - b) for (let i = 0; i < nodes.length; ++i) { nodes[i].val = values[i] }}