题解 | #牛的品种排序IV#

牛的品种排序IV

https://www.nowcoder.com/practice/bd828af269cd493c86cc915389b02b9f

  1. 题目考察的知识点

考察链表的基本操作

  1. 题目解答方法的文字分析

算法思想:建立两个链表,分别收集值为1和值为0的结点,最后将这两个链表连在一起。

算法步骤: 1、建立哑结点oneDummy和zeroDummy,以便实现头插法来插入结点,创建tail结点来标识zeroDummy链表的尾巴。以便后续oneDummy和zeroDummy的结合 2、用cur结点遍历原链表,通过判断cur.val的值,来决定将cur结点插入oneDummy还是zeroDummy。 3、重复第二步,直到cur==null. 4、合并oneDummy和zeroDummy。即为答案

  1. 本题解析所用的编程语言

java

  1. 完整且正确的编程代码
import java.util.*;

/*
 * public class ListNode {
 *   int val;
 *   ListNode next = null;
 *   public ListNode(int val) {
 *     this.val = val;
 *   }
 * }
 */

public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param head ListNode类 
     * @return ListNode类
     */
    public ListNode sortCowsIV (ListNode head) {
        //链表结点为空或者只有一个,则直接返回
        if(head==null||head.next==null)
        return head;
       //值为1的所有结点都在链表oneDummy中
       ListNode oneDummy = new ListNode(-1);
       //标注链表zeroDummy的尾巴结点
        ListNode tail = new ListNode(-1);
      //值为0的所有结点都在链表zeroDummy中
       ListNode zeroDummy = new ListNode(-2);
       ListNode cur = head;
       while(cur!=null){
        if(cur.val==1){
          //头插法,将值为1的结点插入到oneDummy链表中
          ListNode pre = oneDummy.next;
          oneDummy.next=cur;
          cur = cur.next;
          oneDummy.next.next = pre;
        }else{
          //头插法,将值为0的结点插入到zeroDummy链表中
          ListNode pre = zeroDummy.next;
          zeroDummy.next=cur;
          cur = cur.next;
          zeroDummy.next.next = pre;
        }
        if(zeroDummy.next!=null&&zeroDummy.next.next==null){
            tail = zeroDummy.next;
        }
        
       }
       //连接zeroDummy和oneDummy
       tail.next=oneDummy.next;
       return zeroDummy.next;
    }
}
全部评论

相关推荐

这是什么操作什么意思,这公司我服了...
斯派克spark:意思是有比你更便宜的牛马了
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-07 12:04
毕业生招你惹你了,问一个发薪日来一句别看网上乱七八糟的你看哪个工作没有固定发薪日扭头就取消了面试就问了一句公司都是这个态度吗还搞上人身攻击了...
程序员小白条:呃呃呃,都还没面试,我都不会问这么细,何况通不通过,去不去都另说,你没实力和学历的话,在外面就这样,说实话没直接已读不回就不错了,浪费时间基本上
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
06-11 13:34
offe从四面八方来:我真的没时间陪你闹了
点赞 评论 收藏
分享
fRank1e:吓得我不敢去外包了,但是目前也只有外包这一个实习,我还要继续去吗
点赞 评论 收藏
分享
07-10 11:08
门头沟学院 Java
投递京东等公司10个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务