ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

40 二叉树的直径

2026/9/28 20:41:22 拓冰建站 浏览量
40 二叉树的直径 给你一棵二叉树的根节点返回该树的直径。二叉树的直径是指树中任意两个节点之间最长路径的长度。这条路径可能经过也可能不经过根节点root。两节点之间路径的长度由它们之间边数表示。示例 1输入root [1,2,3,4,5]输出3解释3 取路径 [4,2,1,3] 或 [5,2,1,3] 的长度。示例 2输入root [1,2]输出1提示树中节点数目在范围[1, 104]内-100 Node.val 100思路二叉树的直径就是二叉树中连起来的最多的节点-1计算一个节点连接的最大长度为这个节点左子树节点的长度1 或者 右子树的长度1如果是左子树更长那就是left1,如果是右子树的长度那就是right1节点的直径为 连接长度-1class Solution { public: int maxdeep0; int diameterOfBinaryNode(TreeNode* node){ if(!node) return -1; if(!node-left!node-right) return 0; int leftDeepdiameterOfBinaryNode(node-left); int rightDeepdiameterOfBinaryNode(node-right); maxdeepmaxdeep(leftDeeprightDeep2)?maxdeep:(leftDeeprightDeep2); return (leftDeep1)(rightDeep1)?(leftDeep1):(rightDeep1); } int diameterOfBinaryTree(TreeNode* root) { diameterOfBinaryNode(root); return maxdeep; } };推荐一个零声教育学习教程个人觉得老师讲得不错分享给大家[LinuxNginx ZeroMQMySQLRedisfastdfsMongoDBZK流媒体CDNP2PK8SDockerTCP/IP协程DPDK等技术内容点击立即学习:链接