农场里有一群牛,每头牛都有一个编号。现在农场主想要按照编号位置的奇偶性重排牛群的顺序,要求将所有编号位置为奇数的牛放在前面,编号位置为偶数的牛放在后面。同时,偶数部分和奇数部分内部的相对顺序应该与输入时保持一致。 请你实现一个函数 ListNode* reorderCows(ListNode* head),接收一个链表的头节点 head 作为参数,表示牛群的初始编号顺序。函数返回一个链表的头节点,表示重排后的牛群编号顺序。 你必须在 O(1) 的额外空间复杂度和 O(n) 的时间复杂度下解决这个问题。

区块链毕设网qklbishe.com为您提供问题的解答

农场里有一群牛,每头牛都有一个编号。现在农场主想要按照编号位置的奇偶性重排牛群的顺序,要求将所有编号位置为奇数的牛放在前面,编号位置为偶数的牛放在后面。同时,偶数部分和奇数部分内部的相对顺序应该与输入时保持一致。

请你实现一个函数 ListNode* reorderCows(ListNode* head),接收一个链表的头节点 head 作为参数,表示牛群的初始编号顺序。函数返回一个链表的头节点,表示重排后的牛群编号顺序。

你必须在 O(1) 的额外空间复杂度和 O(n) 的时间复杂度下解决这个问题。

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 reorderCows (ListNode head) {
        ListNode head1=null;
        ListNode nowhead1=null;
        ListNode head2=null;
        ListNode nowhead2=null;
        while(head!=null){
            if(head.val%2!=0 && head1 == null){
                head1 = head;
                nowhead1 = head;
                head = head.next;

            }
            else if(head.val%2!=0 && head1 != null){
                nowhead1.next = head;
                nowhead1 = head;
                head=head.next;
            }
            else if(head.val%2==0 && head2 == null){
                head2 = head;
                nowhead2 = head;
                head = head.next;
            }
            else{
                nowhead2.next = head;
                nowhead2 = head;
                head = head.next;
            }
        }
        if(nowhead2!=null){
        nowhead2.next = null;
        }
        nowhead1.next = head2;

       
        return head1;
        // write code here
    }
}

50:05

以上就是关于问题农场里有一群牛,每头牛都有一个编号。现在农场主想要按照编号位置的奇偶性重排牛群的顺序,要求将所有编号位置为奇数的牛放在前面,编号位置为偶数的牛放在后面。同时,偶数部分和奇数部分内部的相对顺序应该与输入时保持一致。 请你实现一个函数 ListNode* reorderCows(ListNode* head),接收一个链表的头节点 head 作为参数,表示牛群的初始编号顺序。函数返回一个链表的头节点,表示重排后的牛群编号顺序。 你必须在 O(1) 的额外空间复杂度和 O(n) 的时间复杂度下解决这个问题。的答案

欢迎关注区块链毕设网-
专业区块链毕业设计成品源码,定制。

区块链NFT链游项目方科学家脚本开发培训

从业7年-专注一级市场


微信:btc9767
TELEGRAM :https://t.me/btcok9

具体资料介绍

web3的一级市场千万收益的逻辑


进群点我



qklbishe.com区块链毕设代做网专注|以太坊fabric-计算机|java|毕业设计|代做平台-javagopython毕设 » 农场里有一群牛,每头牛都有一个编号。现在农场主想要按照编号位置的奇偶性重排牛群的顺序,要求将所有编号位置为奇数的牛放在前面,编号位置为偶数的牛放在后面。同时,偶数部分和奇数部分内部的相对顺序应该与输入时保持一致。 请你实现一个函数 ListNode* reorderCows(ListNode* head),接收一个链表的头节点 head 作为参数,表示牛群的初始编号顺序。函数返回一个链表的头节点,表示重排后的牛群编号顺序。 你必须在 O(1) 的额外空间复杂度和 O(n) 的时间复杂度下解决这个问题。