题解 | #牛的品种排序IV#
牛的品种排序IV
https://www.nowcoder.com/practice/bd828af269cd493c86cc915389b02b9f
知识点:链表 遍历
模拟思路:没理解这题的想用的算法,单纯的遍历链表,筛选出0,1,放一起感觉没啥意义,但是复杂度O(n),已经最快了;如果这就是答案,那这算不上困难题,感觉牛客题库不太行(不是)
编程语言:java
如果我的思路启发了你,给个小小关注吧~
我是废江,一个从java跑到内核再准备润回java的打工人,我会持续分享从linux内核到上层java微服务等干货
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) {
// write code here
if(head.next == null)
return head;
ListNode l1 = new ListNode(-1);
ListNode cur = l1;
ListNode l2 = new ListNode(-1);
ListNode cur2 =l2;
ListNode tmp = null;
ListNode flag = null;
while (head != null) {
if (head.val == 0) {
tmp = new ListNode(0);
tmp.next = null;
l1.next = tmp;
l1 = tmp;
flag = l1;
} else {
tmp = new ListNode(1);
tmp.next = null;
l2.next = tmp;
l2 = tmp;
}
head = head.next;
}
flag.next = cur2.next;
return cur.next;
}
}
