农场里有一些牛,每头牛都有一个编号(1-n)。这些牛之间存在一种特殊的关系,我们可以把这些关系看作是一棵二叉树,牛的编号就是二叉树的节点。现在农场主想知道,这些牛之间的最长距离是多少。这里的距离定义为二叉树中任意两个节点之间路径的长度。

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

农场里有一些牛,每头牛都有一个编号(1-n)。这些牛之间存在一种特殊的关系,我们可以把这些关系看作是一棵二叉树,牛的编号就是二叉树的节点。现在农场主想知道,这些牛之间的最长距离是多少。这里的距离定义为二叉树中任意两个节点之间路径的长度。

 真牛!
01:02

非递归做法

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 diameterOfBinaryTree (TreeNode root) {         // write code here         if (root == null) {             return 0;         }         //统计左节点深度         int left = 0;         //统计右节点深度         int right = 0;         //如果右节点为空,那么就向左循环遍历         while (root.right!=null&&root.left == null) {             right++;             root = root.right;         }         //如果左节点为空,那么向右循环遍历         while (root.left!=null&&root.right == null) {             left++;             root = root.left;         }         //如果都为空,那么返回左右深度         if (root.left == null && root.right == null) {             return (left + right);         }         //都不为空,则返回其深度         left = getDepth(root.left);         right = getDepth(root.right);          return (left + right);     }     //获取该节点的深度     public int getDepth(TreeNode root) {         Queue<TreeNode> queue = new LinkedList<>();         queue.add(root);         int depth = 0;         while (!queue.isEmpty()) {             int size = queue.size();             for (int i = 0; i < size; i++) {                 TreeNode node = queue.poll();                 if (node.left != null) {                     queue.add(node.left);                 }                 if (node.right != null) {                     queue.add(node.right);                 }             }             depth++;         }         return depth;     } }

07:47

以上就是关于问题农场里有一些牛,每头牛都有一个编号(1-n)。这些牛之间存在一种特殊的关系,我们可以把这些关系看作是一棵二叉树,牛的编号就是二叉树的节点。现在农场主想知道,这些牛之间的最长距离是多少。这里的距离定义为二叉树中任意两个节点之间路径的长度。的答案

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

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

从业7年-专注一级市场


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

具体资料介绍

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


进群点我



qklbishe.com区块链毕设代做网专注|以太坊fabric-计算机|java|毕业设计|代做平台-javagopython毕设 » 农场里有一些牛,每头牛都有一个编号(1-n)。这些牛之间存在一种特殊的关系,我们可以把这些关系看作是一棵二叉树,牛的编号就是二叉树的节点。现在农场主想知道,这些牛之间的最长距离是多少。这里的距离定义为二叉树中任意两个节点之间路径的长度。