美文网首页随笔
Leetcode 687. 最长同值路径

Leetcode 687. 最长同值路径

作者: zhipingChen | 来源:发表于2019-10-27 23:07 被阅读0次

题目描述

给定一个二叉树,找到最长的路径,这个路径中的每个节点具有相同值。 这条路径可以经过也可以不经过根节点。

注意:两个节点之间的路径长度由它们之间的边数表示。

示例 1:

输入:

          5
         / \
        4   5
       / \   \
      1   1   5

输出:

2

示例 2:

输入:

          1
         / \
        4   5
       / \   \
      4   4   5

输出:

2

注意: 给定的二叉树不超过10000个结点。 树的高度不超过1000。

解法

不妨定义findMax函数表示每个节点的最长单边路径值(所谓单边路径,即当前节点与左子树节点构成的路径,或当前节点与右子树节点构成的路径),根据某一个节点的左子节点findMax值,和右子节点findMax值,即可获得当前节点的同值路径。则遍历二叉树对每个节点的左右子节点求出findMax值,即可获得该二叉树中的最大同值路径。

class Solution(object):
    def longestUnivaluePath(self, root):
        """
        :type root: TreeNode
        :rtype: int
        """
        self.ret=0
        def findMax(root):
            if not root:
                return 0
            llen=findMax(root.left)
            rlen=findMax(root.right)
            llen=llen+1 if root.left and root.left.val==root.val else 0
            rlen=rlen+1 if root.right and root.right.val==root.val else 0
            self.ret=max(self.ret,llen+rlen)
            return max(llen,rlen)
        findMax(root)
        return self.ret

相关文章

  • 687. 最长同值路径

    687. 最长同值路径 每次dfs返回的是以该节点为结尾的最长串长度

  • Leetcode 687. 最长同值路径

    题目描述 给定一个二叉树,找到最长的路径,这个路径中的每个节点具有相同值。 这条路径可以经过也可以不经过根节点。 ...

  • Leetcode 687. 最长同值路径

    题目描述 给定一个二叉树,找到最长的路径,这个路径中的每个节点具有相同值。 这条路径可以经过也可以不经过根节点。 ...

  • 【LeetCode】687. 最长同值路径

    简书内代码已上传GitHub:点击我 去GitHub查看代码写在前面: 日更5题的总结要停停了...先来篇题解混日...

  • 687. 最长同值路径

    这个是用递归解决,答案给的代码太美了。 看起来没什么,你自己动手写,逻辑上没什么问题,但是写不到这么美。 这一行包...

  • Leetcode 687 最长同值路径

    给定一个二叉树,找到最长的路径,这个路径中的每个节点具有相同值。 这条路径可以经过也可以不经过根节点。 注意:两个...

  • 687.最长同路径值

    题目描述 给定一个二叉树,找到最长的路径,这个路径中的每个节点具有相同值。 这条路径可以经过也可以不经过根节点。 ...

  • Leetcode-687-最长同值路径

    给定一个二叉树,找到最长的路径,这个路径中的每个节点具有相同值。 这条路径可以经过也可以不经过根节点。 注意:两个...

  • 2021-11-26 687. 最长同值路径【Medium】

    给定一个二叉树,找到最长的路径,这个路径中的每个节点具有相同值。 这条路径可以经过也可以不经过根节点。 注意:两个...

  • [算法练习] Leetcode 687 最长同值路径

    题目 给定一个二叉树,找到最长的路径,这个路径中的每个节点具有相同值。 这条路径可以经过也可以不经过根节点。注意:...

网友评论

    本文标题:Leetcode 687. 最长同值路径

    本文链接:https://www.haomeiwen.com/subject/fiomvctx.html