在一个牧场中,有n头牛,牛的品种分为黑牛和白牛,用0和1分别表示。现在需要对牛群进行排序,使得相同品种的牛相邻,并按照黑牛和白牛的顺序排列。为此,我们决定使用二叉树进行排序,其中根节点为-1,0在左子树,1在右子树。此外,左右子树都必须是完全二叉树。给定一个整数数组 cows,表示牛群的初始排序,你需要返回排序后的二叉树的根节点。

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

在一个牧场中,有n头牛,牛的品种分为黑牛和白牛,用0和1分别表示。现在需要对牛群进行排序,使得相同品种的牛相邻,并按照黑牛和白牛的顺序排列。为此,我们决定使用二叉树进行排序,其中根节点为-1,0在左子树,1在右子树。此外,左右子树都必须是完全二叉树。给定一个整数数组 cows,表示牛群的初始排序,你需要返回排序后的二叉树的根节点。

package main import _"fmt" import . "nc_tools" /*  * type TreeNode struct {  *   Val int  *   Left *TreeNode  *   Right *TreeNode  * }  */  /**  * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可  *  *   * @param cows int整型一维数组   * @return TreeNode类 */ func sortCowsTree( cows []int ) *TreeNode {     var b,w int     for _,x:=range cows{         if x==0{             b++         }     }     w=len(cows)-b     return &TreeNode{-1,makeTree(b,0),makeTree(w,1)} }  func makeTree(n,x int)*TreeNode{     if n==0{         return nil     }     root:=&TreeNode{Val:x}     n--     q:=[]*TreeNode{root}     for len(q)>0{         nextQ:=[]*TreeNode{}         for _,qi:=range q{             if n>0{                 qi.Left=&TreeNode{Val:x}                 nextQ=append(nextQ,qi.Left)                 n--             }else{                 return root             }             if n>0{                 qi.Right=&TreeNode{Val:x}                 nextQ=append(nextQ,qi.Right)                 n--             }else{                 return root             }         }         q=nextQ     }     return root } 

27:53

以上就是关于问题在一个牧场中,有n头牛,牛的品种分为黑牛和白牛,用0和1分别表示。现在需要对牛群进行排序,使得相同品种的牛相邻,并按照黑牛和白牛的顺序排列。为此,我们决定使用二叉树进行排序,其中根节点为-1,0在左子树,1在右子树。此外,左右子树都必须是完全二叉树。给定一个整数数组 cows,表示牛群的初始排序,你需要返回排序后的二叉树的根节点。的答案

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

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

从业7年-专注一级市场


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

具体资料介绍

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


进群点我



qklbishe.com区块链毕设代做网专注|以太坊fabric-计算机|java|毕业设计|代做平台-javagopython毕设 » 在一个牧场中,有n头牛,牛的品种分为黑牛和白牛,用0和1分别表示。现在需要对牛群进行排序,使得相同品种的牛相邻,并按照黑牛和白牛的顺序排列。为此,我们决定使用二叉树进行排序,其中根节点为-1,0在左子树,1在右子树。此外,左右子树都必须是完全二叉树。给定一个整数数组 cows,表示牛群的初始排序,你需要返回排序后的二叉树的根节点。