/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* TreeNode *left;
* TreeNode *right;
* TreeNode(int x) : val(x), left(NULL), right(NULL) {}
* };
*/
class Solution {
public:
int longestUnivaluePath(TreeNode* root) {
if (!root) return ;
int max = ;
dfs(root, max);
return max;
} int dfs(TreeNode* root, int & max) {
int l = , r = ; if (root->left && root->left->val == root->val)
l = + dfs(root->left, max);
else if (root->left)
dfs(root->left, max); if (root->right && root->right->val == root->val)
r = + dfs(root->right, max);
else if (root->right)
dfs(root->right, max); if (l+r > max)
max = l+r; return (l > r) ? l : r;
}
};

补充一个python的实现:

 class Solution:
def __init__(self):
self.path = def lastOrder(self,root):
if root == None:
return
left = self.lastOrder(root.left)
right = self.lastOrder(root.right)
leftpath,rightpath = ,
if root.left != None:
leftpath = left + if root.val == root.left.val else
if root.right != None:
rightpath = right + if root.val == root.right.val else
self.path = max(self.path,leftpath+rightpath)
return max(leftpath,rightpath) def longestUnivaluePath(self, root: TreeNode) -> int:
self.lastOrder(root)
return self.path

leetcode687的更多相关文章

  1. [Swift]LeetCode687. 最长同值路径 | Longest Univalue Path

    Given a binary tree, find the length of the longest path where each node in the path has the same va ...

  2. LeetCode--687. 最长同值路径

    题目描述:给定一个二叉树,找到最长的路径,这个路径中的每个节点具有相同值.这条路径可以经过也可以不经过根节点.注意:两个节点之间的路径长度由它们之间的边数表示. 示例1:输入: 5 / \ 4 5 / ...

  3. Leetcode687.Longest Univalue Path最长同值路径

    给定一个二叉树,找到最长的路径,这个路径中的每个节点具有相同值. 这条路径可以经过也可以不经过根节点. 注意:两个节点之间的路径长度由它们之间的边数表示. 示例 1: 输入: 5 / \ 4 5 / ...

随机推荐

  1. vue-router(二)后代路由

    关键字:router,children ,router-link,router-view,router-link-active 先理解什么是children? 后代路由为某路由中用到router-vi ...

  2. 从VS2010跳跃到VS2017

    Visual Studio 配色方案 https://studiostyl.es/ C#语言新特性 C#4.0:http://www.cnblogs.com/yangqi/archive/2010/0 ...

  3. [Java]如何为一个自定义类型的List排序。

    好吧,三年了,又重拾我的博客了,是因为啥呢,哈哈哈.今天被问到一个题目,当场答不出来,动手动的少了,再此记录下来. Q:有一个MyObject类型的List,MyObject定义如下: class M ...

  4. test20181223

    Written with StackEdit. T1 取石子(stone) Description 有\(n\)堆石子,第\(i\)堆有\(x_i\)个. \(Alice\)和\(Bob\)轮流取石子 ...

  5. cocos2dx ScrollView的用法

    http://blog.csdn.net/u014096244/article/details/21525789 http://bbs.9ria.com/thread-199305-1-1.html ...

  6. golang的https服务器

    先生成ssl证书 openssl genrsa - openssl req - 然后,大概这样 package main import ( "log" "net/http ...

  7. javascript基础-js对象

    一.js对象的创建 1.普通最简单的方式 var teacher = new Object( ); teacher.name = "zhangsan"; teacher.age = ...

  8. maven中项目发布jar包不同步

    昨天的项目今天运行的时候突然发现今天就不能运行了 严重: Error configuring application listener of class org.springframework.web ...

  9. 【转】使用JMeter做性能测试的心得

    企业应用开发过程中,性能测试是很重要的一个环节,在这个环节中Apache的JMeter以它开源.100%纯Java.操作方便等优点发挥着很大的作用. 经过一段时间的使用,多少有些心得和技巧,拿出来共享 ...

  10. spring-session之四:Spring Session下的Redis存储结构

    spring-session项目启动后 127.0.0.1:6379> keys * 1) "spring:session:index:org.springframework.sess ...