图书整理--LeetCode
题目
书店店员有一张链表形式的书单,每个节点代表一本书,节点中的值表示书的编号。为更方便整理书架,店员需要将书单倒过来排列,就可以从最后一本书开始整理,逐一将书放回到书架上。请倒序返回这个书单链表。
示例 1:
输入:head = [3,6,4,1]
输出:[1,4,6,3]
本题主要是将链表进行反转,就可以使用栈的特性-先进后出,那么对于队列而言,只需将链表依次插入队列头部,这个队列就是倒序了,也可以实现栈的特性
/*** 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) {Deque<Integer> q = new LinkedList();//创建一个队列//依次遍历链表添加到队列头部while(head != null){q.addFirst(head.val);head = head.next;}int[] res = new int[q.size()];int i = 0;for(int num : q){res[i++] = num;}return res;}
}