剑指offer:二叉树的镜像(java)

题目:请完成一个函数,输入一个二叉树,该函数输出它的镜像

如图所示:右边的二叉树就是左边的树的镜像

上述树求镜像的步骤如下:我们先前序遍历这个树的每个结点,如果遍历到的结点有子结点,就交换它的两个子结点。当交换完所有非叶子结点的左右子结点之后,就得到了树的镜像。

public void MirrorRecursively(BinaryTreeNode node){  
        if(node == null)  
            return;  
        if(node.leftNode == null && node.rightNode == null)  
            return;  
        BinaryTreeNode temp = node.leftNode;  
        node.leftNode = node.rightNode;  
        node.rightNode = temp;  
        if(node.leftNode != null)  
            MirrorRecursively(node.leftNode);  
        if(node.rightNode != null)  
            MirrorRecursively(node.rightNode);  
    }  


发布了118 篇原创文章 · 获赞 35 · 访问量 12万+

猜你喜欢

转载自blog.csdn.net/abc7845129630/article/details/52724841