lintcode算法题之822-相反的顺序存储

  • Post author:
  • Post category:其他


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;

}

}



版权声明:本文为softstarhhy原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。