题目
书店店员有一张链表形式的书单,每个节点代表一本书,节点中的值表示书的编号。为更方便整理书架,店员需要将书单倒过来排列,就可以从最后一本书开始整理,逐一将书放回到书架上。请倒序返回这个书单链表。
示例 1:
输入:head = [3,6,4,1]
输出:[1,4,6,3]
提示:
0 <= 链表长度 <= 10000
代码
/**
-
Definition for singly-linked list.
-
public class ListNode {
-
int val;
-
ListNode next;
-
ListNode() {}
-
ListNode(int val) { this.val = val; }
-
ListNode(int val, ListNode next) { this.val = val; this.next = next; }
-
}
*/
class Solution {
public int[] reverseBookList(ListNode head) {
if(head ==null)
return new int[0];
int count =0;
ListNode temp = head;
while(temp!=null){
count++;
temp=temp.next; }
int[] res = new int [count];
int k =count-1;
while(head!=null){
res[k–]=head.val;
head = head.next;} return res;
}
}
时间复杂度:O(n)
额外空间复杂度:O(1)