题解 | #牛的品种排序IV#
牛的品种排序IV
https://www.nowcoder.com/practice/bd828af269cd493c86cc915389b02b9f?tpId=354&tqId=10595837&ru=/exam/oj&qru=/ta/interview-202-top/question-ranking&sourceUrl=%2Fexam%2Foj
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) {
int number = 0;
ListNode temp = head;
while (temp != null) {
if (temp.val == 0) {
number++;
}
temp = temp.next;
}
ListNode cur = head;
while (cur != null) {
if (number-- > 0) {
cur.val = 0;
} else {
cur.val = 1;
}
cur = cur.next;
}
return head;
}
}
本题知识点分析:
1.链表遍历
2.链表赋值
3.数学模拟
4.虚拟头节点
本题解题思路分析:
1.先遍历一次链表记录0的数量
2.然后再遍历一次链表,先把0的数量赋值完,然后再赋值为1即可
3.最后返回没有被修改的节点head
本题使用编程语言: Java
如果您觉得本篇文章对您有帮助的话,可以点个赞支持一下,感谢~
高频面试算法题解 文章被收录于专栏
高频面试算法题解,每天一小步,人生一大步,跟着一起刷起来!

