首页 > 其他分享 >力扣543-二叉树的直径

力扣543-二叉树的直径

时间:2023-12-31 18:12:51浏览次数:45  
标签:子树 经过 复杂度 力扣 543 二叉树 直径 节点

难度:【简单】

  • 定义:在一个二叉树中,任意两个节点之间的路径中最长的路径的长度称为其直径。路径长度由两个节点之间经过的“边”表示,而不是节点数。且二叉树的直径不一定经过根节点。
  • 先大致看了官方解法,不理解,心情暴躁没看懂,就自己瞎写。
  • 起初不理解直径不一定经过根节点。根据示例,只简单将root的左右子树的层数相加(仅对根节点计算,显然是错误的),部分用例没过,就是没考虑不经过根节点的情况。其实不经过根节点的情况不难构造,某个子节点的左右子树高度超过根节点的左(或右)子树的高度即可。
  • 根据不经过根节点的二叉树特点,调整算法,对每个节点按上面算法计算一遍,返回最大值。时间复杂度O(nlogn),空间复杂度O(n),复杂度不如官方的好。
  • 需要优化(todo)

标签:子树,经过,复杂度,力扣,543,二叉树,直径,节点
From: https://www.cnblogs.com/metasequoiaa/p/17937829

相关文章

  • 二叉树面试题解析
    二叉树面试题解析判断相同的树/***Definitionforabinarytreenode.*publicclassTreeNode{*intval;*TreeNodeleft;*TreeNoderight;*TreeNode(){}*TreeNode(intval){this.val=val;}*TreeNode(intval,TreeNode......
  • 算法学习Day18左下角的值,路径总和,构建二叉树
    #Day18左下角的值,路径总和,构建二叉树`ByHQWQF2023/12/30`##笔记***##513.找树左下角的值给定一个二叉树的**根节点**`root`,请找出该二叉树的 **最底层 最左边**节点的值。假设二叉树中至少有一个节点。**示例2:****输入:**\[1,2,3,4,null,5,6,null,null,7]**......
  • 《绝密 543》观后感
    导师推荐我看电视剧《绝密543》学学管理,断断续续看完后,过了一周,也就是今天,想起来要总结一下收获。目前脑子里还记得的,是经过了“一周时间”这个筛子筛出来的。呼应剧中司马副连长的口头禅“我就说三点”,我也就说三点。第一点:先有目标,再谈困难先有目标,再谈困难,这种例子在剧情中......
  • 力扣461-汉明距离
    难度:【简单】“汉明距离”是指两个整数的二进制表示中二进制位不同的对数(或组数)。汉明距离应用广泛,可以用于检测编码错误、量化字符串差异(信息论)等。根据定义,求两个整数的汉明距离,就是求两个整数二进制位不同的组数。根据异或运算,相同为假相异为真,两数异或之后统计二进制位为1......
  • JAVA 实现 - 二叉树(二)
    二叉搜索树二叉搜索树/二叉查找树/二叉排序树特点:树节点增加key属性,用来比较谁大谁小,key不可以重复对于任意一个树节点,它的key比左子树的key都大,同时也比右子树的key都大/***二叉搜索树*/publicclassBSTree1{publicTreeNoderoot;publicstaticcla......
  • 算法学习Day17二叉树迭迭迭迭代
    Day17迭迭迭迭代ByHQWQF2023/12/28笔记110.平衡二叉树给定一个二叉树,判断它是否是高度平衡的二叉树。本题中,一棵高度平衡二叉树定义为:一个二叉树_每个节点_的左右两个子树的高度差的绝对值不超过1。示例1:输入:root=[3,9,20,null,null,15,7]输出:true递归法......
  • 代码随想录算法训练营第十七天 | 110.平衡二叉树,257. 二叉树的所有路径,404.左叶子之和
    一、110.平衡二叉树题目链接:LeetCode110.平衡二叉树学习:思路:后序遍历。实际上是由叶结点到根结点,若有一颗子树不是平衡二叉树,则直接返回给根结点二、257.二叉树的所有路径题目链接:LeetCode257.二叉树的所有路径学习:思路:递归+回溯。因为是线=先遍历根结点,然后遍历左孩......
  • 力扣448-找到所有数组中消失的数字
    难度:【简单】常规笨方法做一遍:先遍历一遍记录到哈希表中,再从1到n遍历一遍,不在哈希表中的记入返回数组中,时空复杂度都是O(n)。尝试优化空间复杂度到O(1):先填满返回数组,再遍历原数组,原数组中出现的元素删掉。也是朴素的笨方法,所以超出了时间限制。这让我体会到了数组查找元素的时......
  • 【力扣】-28. 找出字符串中第一个匹配项的下标|刷题打卡-JS
    给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串的第一个匹配项的下标(下标从0开始)。如果 needle 不是 haystack 的一部分,则返回  -1 。示例1:输入:haystack="sadbutsad",needle="sad"输出:0解释:"sad"在下标0和6处匹配。......
  • 【力扣】-39. 组合总和|刷题打卡-JS
    给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target ,找出 candidates 中可以使数字和为目标数 target 的所有 不同组合 ,并以列表形式返回。你可以按 任意顺序 返回这些组合。candidates 中的 同一个 数字可以 无限制重复被选取 。如果至少一个......