解题步骤
- 分:获取左右子树
- 解:递归翻转左右子树
- 合:将翻转后的左右子树换个位置放到根节点上
通过最小堆的方式实现
- 时间复杂度:O (n)
空间复杂度:O (h)
function invertTree(root) {
if (!root) return null;
return {
val: root.val,
left: invertTree(root.right),
right: invertTree(root.left),
};
}
因为使用了递归,树的每个节点都被访问到了,所以时间复杂度是 O (n)。而空间复杂度为 O (h) h 为树的高度。