单链表翻转 非递归方法
返回数组
package com.link;
import java.util.ArrayList;
import java.util.List;
public class Solution {
List<Integer> list =new ArrayList<>();
public List<Integer> reverseStore(ListNode head) {
// write your code here
ListNode pre=null;
ListNode next=null;
ListNode cur=head;
while(cur!=null){
System.out.println(cur.val);
next=cur.next;
cur.next=pre;
pre=cur;
cur=next;
}
cur=pre;//因为最后next指向为空 所以 需要使用pre
while(cur!=null){
list.add(cur.val);
cur=cur.next;
}
return list;
}
public static void main(String[] arg) {
ListNode node1=new ListNode(1);
ListNode node2=new ListNode(2);
ListNode node3=new ListNode(3);
ListNode node4=new ListNode(4);
node1.next=node2;
node2.next=node3;
node3.next=node4;
Solution solution=new Solution();
List list=solution.reverseStore(node1);
for (int i=0;i<list.size();i++) {
System.out.println(list.get(i));
}
}
}