# 이진 트리 후위 순회 ## 문제 주어진 이진트리를 후위 순회하여 출력 예와 같은 결과를 만드시오. ![클라우드스터딩-자료구조-이진-트리-후위-순회](https://i.imgur.com/8cOFF4l.png) #### 후위 순회 후위 순회란 트리의 모든 노드를 방문하는 방법 중 하나이다. 후위 순회는 `좌측자식 -> 우측자식 -> 현재 노드` 순으로 우선 방문한다. ## 출력 예 ``` postorder: 44 55 22 66 77 33 11 ```
관련 강의로 이동

코드: java 1.8

public class Main { public static void main(String[] args) { // 트리 생성 및 구조화 MyTree tree7 = new MyTree(77, null, null); MyTree tree6 = new MyTree(66, null, null); MyTree tree5 = new MyTree(55, null, null); MyTree tree4 = new MyTree(44, null, null); MyTree tree3 = new MyTree(33, tree6, tree7); MyTree tree2 = new MyTree(22, tree4, tree5); MyTree tree1 = new MyTree(11, tree2, tree3); // 중위 순회 출력 tree1.printPostorder(); } } class MyTree { // 최상위 노드 private Node root; // 생성자 public MyTree(int data, MyTree leftSubtree, MyTree rightSubtree) { // 루트 노드 생성 this.root = new Node(data, null, null); // 서브 트리 연결 root.leftChild = (leftSubtree == null) ? null : leftSubtree.root; root.rightChild = (rightSubtree == null) ? null : rightSubtree.root; } // 후위 순회 public void printPostorder() { System.out.print("postorder: "); _postorder(root); // 재귀 호출 System.out.println(); } private void _postorder(Node parent) { /* 해당 메소드를 구현하여 후위 순회를 완성하시오. */ } } class Node { int data; // 데이터 Node leftChild; // 왼쪽 자식 노드 Node rightChild; // 오른쪽 자식 노드 public Node(int data, Node leftChild, Node rightChild) { this.data = data; this.leftChild = leftChild; this.rightChild = rightChild; } }

입력

정답이 궁금하다면? 코드를 제출해보세요!