劍指offer面試題5 從頭到尾列印連結串列(java)
阿新 • • 發佈:2019-02-17
注:(1)這裡體現了java資料結構與C語言的不同之處
(2)棧的操作直接利用stack進行
1 package com.xsf.SordForOffer; 2 3 import java.util.Stack; 4 5 6 /* 7 *劍指offer 8 *pro5 連結串列逆序輸出 9 * */ 10 11 class ListNode{ 12 //定義節點 13 int data; 14 ListNode next; 15 } 16 17 //利用棧反向列印 18 class PrintListReverse{ 19 //輸入一個頭結點然後利用棧操作完成逆序輸出20 public void print_reverse(ListNode listNode){ 21 Stack<ListNode> stack = new Stack<ListNode>(); 22 //將節點入棧 23 while(listNode!=null){ 24 stack.push(listNode); 25 listNode = listNode.next; 26 } 27 //節點出棧 28 while(!stack.empty()){29 System.out.println(stack.pop().data); 30 } 31 } 32 33 } 34 public class Pro5LinklistReverse { 35 public static void main(String[] args) { 36 ListNode node1 = new ListNode(); 37 ListNode node2 = new ListNode(); 38 ListNode node3 = new ListNode();39 node1.data = 1; 40 node2.data = 3; 41 node3.data = 5; 42 node1.next = node2; 43 node2.next = node3; 44 PrintListReverse test = new PrintListReverse(); 45 test.print_reverse(node1); 46 } 47 }