算法1
反转链表同样可以解决这个问题
建立三个指针,一个pre,一个node,一个next,分别指向该该节点前一个,该节点和下一个节点,然后,先将下一个节点赋给next,然后将当前节点的下一个节点指向pre,然后将pre指向当前节点,遍历整个链表即可,然后,每次循环记录一次,为了后面构建数组。
JAVA 代码
public int[] printListReversingly(ListNode head) {
if(head==null)
return null;
ListNode pre = null;
ListNode node = head;
ListNode next = null;
int count = 1;
while(node.next!=null){
next = node.next;
node.next = pre;
pre = node;
node = next;
count++;
}
node.next = pre;
int[] nums = new int[count];
int i = 0;
while(node!=null){
nums[i++] = node.val;
node = node.next;
}
return nums;
}
楼主你这个怎么也会报错
出现
代码运行状态: Non Zero Exit Code
是怎么回事啊class Solution {
int[] nums = {};
public int[] printListReversingly(ListNode head) {
if(head==null)
return nums;
ListNode pre = null;
ListNode node = head;
ListNode next = null;
int count =1;
while(node.next!=null){
next = node.next;
node.next = pre;
pre = node;
node = next;
count;
}
node.next = pre;
nums = new int[count];
int i = 0;
while(node!=null){
nums[i] = node.val;
node = node.next;
}
return nums;
}
}
我也出现这个报错了,没法改
支持