검지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에 따라 라이센스가 부여됩니다.