剑指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);  
    }  


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章