重排链表

it2023-11-17  68

给定一个单链表 L:L0→L1→…→Ln-1→Ln , 将其重新排列后变为: L0→Ln→L1→Ln-1→L2→Ln-2→…

你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。

来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/reorder-list 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

class Solution { public void reorderList(ListNode head) { if(head==null){ return ; } Deque<ListNode> deque = new LinkedList<ListNode>(); ListNode temp=head; while(temp.next!=null){ deque.add(temp.next); temp= temp.next; } temp=head; boolean flag=false; while(!deque.isEmpty()){ if(flag){ temp.next=deque.pollFirst(); }else{ temp.next=deque.pollLast(); } flag=!flag; temp =temp.next; } temp.next=null; } }
最新回复(0)