二叉树的镜像

来源:互联网 发布:马伊琍 哪里漂亮 知乎 编辑:程序博客网 时间:2024/05/18 05:03

思路:实际上是交换除了叶子结点外的结点的左右子树,在重复这个过程。

public static void mirrorRecurs(TreeNote root){        if(root==null){            return;        }        if(root.getLeftTreeNote()==null&&root.getRighTreeNote()==null){            return ;        }        TreeNote lefTreeNote=root.getLeftTreeNote();        TreeNote righTreeNote=root.getRighTreeNote();        //交换结点的左右子树        root.setLeftTreeNote(righTreeNote);        root.setRightTreeNote(lefTreeNote);        if(lefTreeNote.getLeftTreeNote()!=null){            mirrorRecurs(lefTreeNote);        }        if(righTreeNote.getRighTreeNote()!=null){            mirrorRecurs(righTreeNote);        }    }

TreeNote类:

public class TreeNote {    private int value;   //节点值    private TreeNote leftTreeNote;   //左子树    private TreeNote rightTreeNote;  //右子树    public TreeNote(){    }    public TreeNote(int value) {        this.value=value;    }    public void setValue(int value){        this.value=value;    }    public int getValue(){        return value;    }    public void setLeftTreeNote(TreeNote leftTreeNote){        this.leftTreeNote=leftTreeNote;    }    public TreeNote getLeftTreeNote(){        return leftTreeNote;    }    public void setRightTreeNote(TreeNote rightTreeNote){        this.rightTreeNote=rightTreeNote;    }    public TreeNote getRighTreeNote(){        return rightTreeNote;    }}
0 0
原创粉丝点击