题解 | #链表分割#

链表分割

http://www.nowcoder.com/practice/0e27e0b064de4eacac178676ef9c9d70

import java.util.*;
public class Partition {
    public ListNode partition(ListNode head, int x) {
      //根据x,将链表中的数据划分成两部分
      //小于x的部分
        ListNode bs=null;
        ListNode be=null;
      //大于x的部分
        ListNode as=null;
        ListNode ae=null;
        while(head!=null){
          //判断当前head的val是哪一部分
            if(head.val<x){
              //判断是否是第一次插入
                if(bs==null){
                    bs=head;
                    be=head;
                }else{
                    be.next=head;
                    be=be.next;
                }
                head=head.next;
            }else{
                if(as==null){
                    as=head;
                    ae=head;
                }else{
                    ae.next=head;
                    ae=ae.next;
                }
                head=head.next;
            }
        }
      //链表数据全部大于x
        if(bs==null){
            return as;
        }
        if(as!=null){
            ae.next=null;
        }
        be.next=as;
        return bs;
    }
}
全部评论

相关推荐

2024-12-26 13:00
太原理工大学 Java
会飞的猿:简历没啥大问题啊,感觉是缺少了实习经历。多投投先找个中小厂过渡一下吧
点赞 评论 收藏
分享
KPLACE:首先是板面看起来不够,有很多奖,比我厉害。项目要精减,大概详细描述两到三个,要把技术栈写清楚,分点,什么算法,什么外设,怎么优化,不要写一大堆,分点,你写上去的目的,一是让别人知道你做了这个知识点,然后在面试官技术面的时侯,他知道你会这个,那么就会跟你深挖这个,然后就是个人评价改为专业技能
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务