06: 끝에서 끝까지 체인 테이블 인쇄

1686 단어

제목 06: 끝에서 끝으로 체인 테이블 인쇄


체인 테이블을 입력하십시오. 체인 테이블의 노드별 값을 끝에서 끝까지 출력합니다.

사고의 방향


하나.창고


체인 테이블을 처음부터 훑어보고 먼저 방문한 다음에 출력하고 나중에 방문한 다음에 출력하며'후진선출'은 창고를 이용하여 실현한다.

둘.귀속


귀속은 본질적으로 하나의 창고의 구조로 귀속을 이용하여 실현할 수 있다.그러나 체인 테이블이 비교적 길 때 귀환은 함수 호출의 등급이 매우 깊고 함수 호출 창고의 넘침을 초래할 수 있다

코드 구현

import java.util.Stack;

public class _06 {
    private static class ListNode {
        private int val;
        private ListNode next;

        public ListNode(int value) {
            this.val = value;
        }
    }
 
    public static void printListInversely1(ListNode root) {// 
        Stack stack = new Stack<>();
        while (root != null) {
            stack.push(root);
            root = root.next;
        }
        ListNode tmp;
        while (!stack.isEmpty()) {
            tmp = stack.pop();
            System.out.print(tmp.val + " ");
        }
    }

    public static void printListInversely2(ListNode root) {// 
        if (root != null) {
            printListInversely2(root.next);
            System.out.print(root.val + " ");
        }
    }
 
    public static void main(String[] args) {
        ListNode n1 = new ListNode(1);
        ListNode n2 = new ListNode(2);
        ListNode n3 = new ListNode(3);
        ListNode n4 = new ListNode(4);
        ListNode n5 = new ListNode(5);
        n1.next =n2;
        n2.next =n3;
        n3.next =n4;
        n4.next =n5;

        printListInversely1(n1);
        System.out.println();
        printListInversely2(n1);
    }
}

출력:
5 4 3 2 1 
5 4 3 2 1 

좋은 웹페이지 즐겨찾기