package string.a143;
import java.util.ArrayList;
public class Solution {
public ListNode reorderList(ListNode head) {
ArrayList<ListNode> listNodes = new ArrayList<>();
ListNode cur=head;
while (cur!=null){
listNodes.add(cur);
cur=cur.next;
}
ListNode newHead = new ListNode();
cur=head;
int length=listNodes.size();
int i=0;
for (;i<(length-i);i++){
cur.next=listNodes.get(i);
cur.next.next=listNodes.get(length-i-1);
cur=cur.next.next;
}
if (length%2==0){
listNodes.get(i).next=null;
}
else {
listNodes.get(i+1).next=listNodes.get(i);
listNodes.get(i).next=null;
}
return newHead;
}
public static void main(String[] args) {
ListNode l1 = new ListNode(1, null);
ListNode l2 = new ListNode(2, null);
ListNode l3 = new ListNode(3, null);
ListNode l4 = new ListNode(4, null);
l1.next=l2;
l2.next=l3;
l3.next=l4;
ListNode cur=new Solution().reorderList(l1);
while (cur!=null){
System.out.println(cur.val);
cur=cur.next;
}
}
}
在调用函数的for循环里的第一句出现了空指针,不明白哪里出了问题