822. 相反的顺序存储
给出一个链表,并将链表的值以
倒序
存储到数组中。
样例
样例1
输入: 1 -> 2 -> 3 -> null
输出: [3,2,1]
样例2
输入: 4 -> 2 -> 1 -> null
输出: [1,2,4]
代码区:
/**
* Definition for ListNode
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) {
* val = x;
* next = null;
* }
* }
*/
public class Solution {
/**
* username:softstarhhy
* @param head: the given linked list
* @return: the array that store the values in reverse order
*/
public List<Integer> reverseStore(ListNode head) {
// write your code here
//采用头插法
List<Integer> list=new ArrayList<Integer>();
ListNode q=head;
if(head==null)
return list;
ListNode p=head.next;
ListNode mid=p.next;
if(p==null)
return list;
while(p!=null)
{
if(p!=null)
{
mid=p.next;//后继指针
q.next=p.next;//前置元素获得后继指针 q实际为最末尾元素
p.next=head;//后继指针指向前置元素
head=p;//重置head
p=mid;//开始下次遍历
}
}
while(head!=null)
{
list.add(head.val);
head=head.next;
}
return list;
}
}