每一棵子树的左孩子和右孩子都发生了交换。既然是“每一棵子树”,那么就意味着重复,既然涉及了重复,就没有理由不用递归。
解题思路
以递归的方式,遍历树中的每一个结点,并将每一个结点的左右孩子进行交换。
/*** @param {TreeNode} root* @return {TreeNode}*/const invertTree = function(root) {// 定义递归边界if(!root) {return root;}// 递归交换右孩子的子结点let right = invertTree(root.right);// 递归交换左孩子的子结点let left = invertTree(root.left);// 交换当前遍历到的两个左右孩子结点root.left = right;root.right = left;return root;};
