leetcode687
/**
* 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的更多相关文章
- [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 ... 
- LeetCode--687. 最长同值路径
		题目描述:给定一个二叉树,找到最长的路径,这个路径中的每个节点具有相同值.这条路径可以经过也可以不经过根节点.注意:两个节点之间的路径长度由它们之间的边数表示. 示例1:输入: 5 / \ 4 5 / ... 
- Leetcode687.Longest Univalue Path最长同值路径
		给定一个二叉树,找到最长的路径,这个路径中的每个节点具有相同值. 这条路径可以经过也可以不经过根节点. 注意:两个节点之间的路径长度由它们之间的边数表示. 示例 1: 输入: 5 / \ 4 5 / ... 
随机推荐
- [转载][QT][SQL]sql学习记录4_sqlite约束
			转载自:定义以及示例请见 : http://www.runoob.com/sqlite/sqlite-constraints.html SQLite 约束 约束是在表的数据列上强制执行的规则.这些是用 ... 
- Mongodb中在已有Colloection插入/更新相关域值
			[{ "confident" : "no", "score" : 0.327355, "label" : "/ ... 
- scrollTop兼容处理
			使用jQuery2.0以下版本的scrollTop()函数来设置当然兼容性当然很好,但有时需要为滚动设置滑动效果.比如,使用animate函数,这里需要做些兼容性处理: 实例:http://sandb ... 
- get、post接口测试-java
			public class HttpClient { //get请求方法 public String sendGet(String url, String data) { Date date = new ... 
- Hbase rowkey热点问题
			当处理由连续事件得到的数据时,即时间上连续的数据.这些数据可能来自于某个传感器网络.证券交易或者一个监控系统.它们显著的特点就是rowkey中含有事件发生时间.带来的一个问题便是HBase对于row的 ... 
- 剑指offer第三章
			剑指offer第三章 1.数值的整数次方 给定一个double类型的浮点数base和int类型的整数exponent.求base的exponent次方. class Solution { public ... 
- simulink生成hdl的几个理解
			1,simulink生成hdl的话需要用支持的模块,否则不能生成,支持的模块组成一个库,这个库需要自己生成,用hdllib命令生成,官方原话: The hdllib function creates ... 
- openresty && hashids&& redis 生成短链接
			1. 原理 a. 从redis 获取需要表示的短链接的id( redis incr) b. hashids 编码 id c. openresty conteent_by_lu ... 
- Linux环境安装配置Swftools
			系统:CentOS6.5的64位版本 这里有一位仁兄的几个错误处理办法,下面是swftools的安装配置步骤: 1.安装所需的库和组件.机器之前安装过了,主要安装的是下面几个组件.如果不安装会 ... 
- pandas之DateFrame 数据过滤+遍历行+读写csv-txt-excel
			# XLS转CSV df = pd.read_excel(r'列表.xls') df2 = pd.DataFrame()df2 = df2.append(list(df['列名']), ignore_ ... 
