剑指offer 5. 从尾到头打印链表

来源:互联网 发布:淘宝上下架黄金时间 编辑:程序博客网 时间:2024/06/07 20:24
class ListNode {int data;ListNode next;}// 题目:倒序打印链表// 解法1:使用栈,先正序压入栈,在将栈中的元素进行打印public class Main {public static void main(String[] args) throws Exception {ListNode node1=new ListNode();ListNode node2=new ListNode();ListNode node3=new ListNode();node1.data=1;node2.data=2;node3.data=3;node1.next=node2;node2.next=node3;printList(node1);}public static void printList(ListNode head){Stack<ListNode> s = new Stack<ListNode>();while(head!=null){s.push(head);head = head.next;}while(!s.isEmpty()){System.out.print(s.pop().data+" ");}}}// 解法2:采用递归的方式从最后一个元素打印public class Main {public static void main(String[] args) throws Exception {ListNode node1=new ListNode();ListNode node2=new ListNode();ListNode node3=new ListNode();node1.data=1;node2.data=2;node3.data=3;node1.next=node2;node2.next=node3;printList(node1);}public static void printList(ListNode head){if(head == null){return;}if(head.next!=null){printList(head.next);}System.out.print(head.data+" ");}}

原创粉丝点击