검지offer 면접문제 19 두 갈래 나무의 거울
                                            
 5164 단어  검지offer
                    
검지offer 면접문제 19 두 갈래 나무의 거울
함수를 완성하고 두 갈래 트리를 입력하십시오. 이 함수는 거울을 출력합니다.(두 갈래 트리 반전mirrorBinTree, reverseBinTree)
package algorithm.foroffer.top20;
import java.util.LinkedList;
import java.util.Queue;
/**
 * Created by liyazhou on 2017/5/27.
 *  19: 
 *
 *  :
 *       , , 。
 *
 *  :
 *      1.  , 
 *      2.  
 *
 *  :
 *      1.  
 *           , 
 */
class TreeNode19{
    int value;
    TreeNode19 left;
    TreeNode19 right;
    public TreeNode19(int value){ this.value = value; }
    public void setChildren(TreeNode19 left, TreeNode19 right){
        this.left = left;
        this.right = right;
    }
}
public class Test19 {
    public static void mirrorOfBinTree(TreeNode19 root){
        //  
        if (root == null) return;
        //  
        TreeNode19 tmpNode = root.left;
        root.left = root.right;
        root.right = tmpNode;
        mirrorOfBinTree(root.left);
        mirrorOfBinTree(root.right);
    }
    public static void main(String[] args){
        TreeNode19 root = generateTree1();
        levelVisit(root);
        inorderVisit(root);
        System.out.println();
        mirrorOfBinTree(root);
        levelVisit(root);
        inorderVisit(root);
    }
    private static void inorderVisit(TreeNode19 root){
        if (root == null) return;
        inorderVisit(root.left);
        System.out.print(root.value + "-");
        inorderVisit(root.right);
    }
    private static void levelVisit(TreeNode19 root){
        if (root == null) return;
        Queue queue = new LinkedList<>();
        queue.add(root);  // queue.offer(root);
        while (!queue.isEmpty()){
            TreeNode19 currNode = queue.poll();
            if (currNode.left != null)  queue.add(currNode.left); // queue.offer(currNode.left);
            if (currNode.right != null) queue.add(currNode.right);
            System.out.print(currNode.value + "-");
        }
        System.out.println();
    }
    private static TreeNode19 generateTree1() {
        TreeNode19 root0 = new TreeNode19(8);
        TreeNode19 root1 = new TreeNode19(6);
        TreeNode19 root2 = new TreeNode19(10);
        TreeNode19 root3 = new TreeNode19(5);
        TreeNode19 root4 = new TreeNode19(7);
        TreeNode19 root5 = new TreeNode19(9);
        TreeNode19 root6 = new TreeNode19(11);
        root0.setChildren(root1, root2);
        root1.setChildren(root3, root4);
        root2.setChildren(root5, root6);
        // root0.left = root1;
        // root1.left = root2;
        return root0;
    }
}
 
                이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
20200326 - 검지offer 면접문제 27: 두 갈래 나무의 거울이솔 위 안에 28문제의 답안이 있는데 어떻게 꼬치는지 모르겠다.간단해....
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.