从尾到头打印链表

来源:互联网 发布:蔡珍妮的淘宝店 编辑:程序博客网 时间:2024/04/28 02:18

输入一个链表,从尾到头打印链表每个节点的值。

输出为需要打印的“新链表”的表头。

解:

1.递归

/***    public class ListNode {*        int val;*        ListNode next = null;**        ListNode(int val) {*            this.val = val;*        }*    }**/import java.util.ArrayList;public class Solution {     ArrayList<Integer> arrayList=new ArrayList<Integer>();    public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {         if(listNode!=null){            this.printListFromTailToHead(listNode.next);            arrayList.add(listNode.val);        }        return arrayList;    }    }
时间复杂度为O(n)

2.栈

/***    public class ListNode {*        int val;*        ListNode next = null;**        ListNode(int val) {*            this.val = val;*        }*    }**/import java.util.ArrayList;public class Solution {   public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {    ArrayList<Integer> list = new ArrayList<Integer>();   if(listNode == null)   return list;      while(listNode.next != null){   list.add(0,listNode.val);   listNode = listNode.next;}   list.add(0,listNode.val);   return list;}}
时间复杂度O(n^2)

0 0
原创粉丝点击