public class E27MirrorBinaryTree {
//二叉树的镜像
private class BinaryTreeNode{
int vallue;
BinaryTreeNode leftNode;
BinaryTreeNode rightNode;
}
public static void mirrorRecursively(BinaryTreeNode root){
//递归终止条件,叶节点也直接返回
if (root == null)
return;
if (root.leftNode == null && root.rightNode == null)
return;
//交换左右子节点
BinaryTreeNode temp = root.leftNode;
root.leftNode = root.rightNode;
root.rightNode = temp;
//递归交换所有左右子节点
mirrorRecursively(root.leftNode);
mirrorRecursively(root.rightNode);
}
//测试用例
public static void main(String[] args){
/*空二叉树
*只含一个节点
* 全为左节点
* 全为右节点
* 一般二叉树*/
}
}
二叉树的镜像(Java实现)
二叉树镜像翻转算法
最新推荐文章于 2021-04-06 10:49:26 发布
本文介绍了一种通过递归方式实现的二叉树镜像翻转算法。该算法首先判断当前节点是否为空,若非空则交换其左右子节点,并递归地对左右子树进行相同操作,直至整棵树完全镜像翻转。
1000

被折叠的 条评论
为什么被折叠?



