农场里有许多牛,每头牛都有一个产奶量值,范围在0到1000之间。为了方便管理,农场主将牛按照产奶量排列成 二叉树的形式。现在,他想知道他从任意结点出发,一直到叶子结点走出这棵树(中间不回头),每次遇到一头牛就收获他的产量奶,他能收获的最大产奶量总和是多少?

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

农场里有许多牛,每头牛都有一个产奶量值,范围在0到1000之间。为了方便管理,农场主将牛按照产奶量排列成二叉树的形式。现在,他想知道他从任意结点出发,一直到叶子结点走出这棵树(中间不回头),每次遇到一头牛就收获他的产量奶,他能收获的最大产奶量总和是多少?

非递归算法,使用队列来做,思路清晰简单快捷
import java.util.*;  /*  * public class TreeNode {  *   int val = 0;  *   TreeNode left = null;  *   TreeNode right = null;  *   public TreeNode(int val) {  *     this.val = val;  *   }  * }  */  public class Solution {     /**      * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可      *      *       * @param root TreeNode类       * @return int整型      */     public int maxMilkSum (TreeNode root) {         // write code here         if(root==null){             return 0;         }         if(root.left==null&&root.right==null){             return root.val;         }         int sum=0;         //循环左子节点为空的节点         while(root.left==null){             root=root.right;         }         //循环右子节点为空的节点         while(root.right==null){             root=root.left;         }         //开始遍历该节点的左右子节点,         sum+=root.val;         //左子节点         sum+=getResult(root.left);         //右子节点         sum+=getResult(root.right);                  return sum;     }     //分别找到该节点叶子节点的最大和     public int getResult(TreeNode root){         Queue<TreeNode> queue=new LinkedList<>();         queue.add(root);         int max=0;         while(!queue.isEmpty()){             TreeNode node=queue.poll();             if(node.left==null&&node.right==null){                 if(node.val>max){                     max=node.val;                 }             }             if(node.left!=null){                 node.left.val=node.left.val+node.val;                 queue.add(node.left);             }             if(node.right!=null){                 node.right.val=node.right.val+node.val;                 queue.add(node.right);             }         }         return max;     } }

57:01

以上就是关于问题农场里有许多牛,每头牛都有一个产奶量值,范围在0到1000之间。为了方便管理,农场主将牛按照产奶量排列成 二叉树的形式。现在,他想知道他从任意结点出发,一直到叶子结点走出这棵树(中间不回头),每次遇到一头牛就收获他的产量奶,他能收获的最大产奶量总和是多少?的答案

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

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

从业7年-专注一级市场


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

具体资料介绍

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


进群点我



qklbishe.com区块链毕设代做网专注|以太坊fabric-计算机|java|毕业设计|代做平台-javagopython毕设 » 农场里有许多牛,每头牛都有一个产奶量值,范围在0到1000之间。为了方便管理,农场主将牛按照产奶量排列成 二叉树的形式。现在,他想知道他从任意结点出发,一直到叶子结点走出这棵树(中间不回头),每次遇到一头牛就收获他的产量奶,他能收获的最大产奶量总和是多少?