给定一个单链表 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;
}
}
565

被折叠的 条评论
为什么被折叠?



