题解 | #重排链表#

重排链表

http://www.nowcoder.com/practice/3d281dc0b3704347846a110bf561ef6b

import java.util.*;
public class Solution {
    public void reorderList(ListNode head) {
        if(head == null) return;

        List<ListNode> list = new ArrayList<>();
        ListNode p = head, q = head.next;
        //1.将所有链表节点放入list中
        while(p != null){
            list.add(p);
            p.next = null;
            p = q;
            if(q != null)
                q = p.next;
        }
        //2.左右双指针,交错往中间靠近然后成链
        int l = 0, r = list.size()-1;
        while(l < r){
            if(l < r) list.get(l ++).next = list.get(r);
            if(l < r) list.get(r --).next = list.get(l);
        }
    }
}
全部评论

相关推荐

服从性笔试吗,发这么多笔,现在还在发。
蟑螂恶霸zZ:傻 x 公司,发两次笔试,两次部门匹配挂,
投递金山WPS等公司10个岗位 >
点赞 评论 收藏
分享
10-17 10:05
已编辑
北华大学 全栈开发
牛客872465272号:掉头发了哥
点赞 评论 收藏
分享
ArisRobert:统一解释一下,第4点的意思是,公司按需通知员工,没被通知到的员工是没法去上班的,所以只要没被通知到,就自动离职。就是一种比较抽象的裁员。
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务