题目考察的知识点是:
本题主要考察的知识点是链表、遍历。
题目解答方法的文字分析:
这道题常规操作就是定义两个头结点,一个头插0结点,另一个头插1节点,然后将两个链表连接起来;也可以定义一个头结点,记录第一个0结点插入的位置,在头结点后面插0结点,在第一个0结点后插1结点,两种思路大致一样。
本题解析所用的编程语言:
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 == null || head.next == null) {
return head;
}
int n = 0;
ListNode temp = head;
while (temp != null) {
if (temp.val == 0) n++;
temp = temp.next;
}
temp = head;
while (temp != null) {
if (n > 0) {
n --;
temp.val = 0;
} else {
temp.val = 1;
}
temp = temp.next;
}
return head;
}
}

京公网安备 11010502036488号