翻转二叉树

55 阅读1分钟

内容和代码参考:前端算法和数据结面试:底层逻辑解读与大厂真题训练,以下是讲如何用递归去实现翻转二叉树

翻转二叉树.png

翻转二叉树

代码实现

  const invertTree = (root) => {
            if (!root) return;
            let left = invertTree(root.left)
            let right = invertTree(root.right);
            root.left = right;
            root.right = left;
            return root;
        }
        let root2 = {
            val: 4,
            left: {
                val: 2,
                left: {
                    val: 1,
                    left: {},
                    right: {},
                },
                right: {
                    val: 3,
                    left: {},
                    right: {}
                }
            },
            right: {
                val: 7,
                left: {
                    val: 6,
                    left: {},
                    right: {},
                },
                right: {
                    val: 9,
                    left: {},
                    right: {}
                }
            }
        }
        console.log(invertTree(root2))