JZ18 二叉树的镜像[剑指offer]

题目


[简单、递归]

题解

交换二叉树的左右子树

1
2
3
4
5
6
7
8
9
10
11
function Mirror( pRoot ) {
//递归出口
if(pRoot === null){
return pRoot;
} else {
[pRoot.left,pRoot.right] = [pRoot.right,pRoot.left]
}
Mirror(pRoot.left);
Mirror(pRoot.right);
return pRoot;
}

补充知识

二叉树的答题模板

1
2
3
4
5
6
7
function traverse(TreeNode root){
// 前序遍历
traverse(root.left)
// 中序遍历
traverse(root.right)
// 后序遍历
}

递归的中心思想:

  • 考虑出口 ( if 部分)
  • 处理当前节点
  • 递归处理下个节点

二叉树问题的递归出口,一般包括:

1
2
3
// 1.节点为空(到达叶子节点)
pRoot === null

文章作者: qinwei
文章链接: https://qw-null.github.io/2021/08/20/二叉树的镜像/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 QW's Blog