翻转二叉树
描述:给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点。 示例:
简单理解就是 交换每个节点的左右孩子节点
何解?
1、递归 : 即可轻松击溃100%的people
let invertTree = function(root){
if(!root) return root
let invert = (root) => {
if(!root) return // 叶子节点的左右孩子为null,表示递到头了
invert(root.left)
invert(root.right)
//子节点处理完 翻转当前节点的左右子(节点/树)
let temp = root.left
root.left = root.right
root.right = temp
}
invert(root)
return root
}
也可以用迭代法,用一个数组模拟栈,从跟节点开始反转,记录孩子节点,在反转孩子节点所在的子树