题目考察的知识点
考察链表的遍历操作
题目解答方法的文字分析
因为值只有0 1 两种,所以可以对于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 ListNode temp = head, node = head; int black = 0, length = 0; while(temp!=null){ if(temp.val==0) black++; //black的个数 temp = temp.next; length++; //链表长度 } for(int i=0; i<length; i++){ if(i<black){ //赋值0 node.val = 0; }else{ //赋值1 node.val = 1; } node = node.next; } return head; } }