博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
549. Binary Tree Longest Consecutive Sequence II
阅读量:5821 次
发布时间:2019-06-18

本文共 1731 字,大约阅读时间需要 5 分钟。

Given a binary tree, you need to find the length of Longest Consecutive Path in Binary Tree. 

Especially, this path can be either increasing or decreasing. For example, [1,2,3,4] and [4,3,2,1] are both considered valid, but the path [1,2,4,3] is not valid. On the other hand, the path can be in the child-Parent-child order, where not necessarily be parent-child order.

Example 1:

Input:        1       / \      2   3Output: 2Explanation: The longest consecutive path is [1, 2] or [2, 1].

 

Example 2:

Input:        2       / \      1   3Output: 3Explanation: The longest consecutive path is [1, 2, 3] or [3, 2, 1].

 

 

/** * 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 longestConsecutive(TreeNode* root) {        int longestLen = 0;        dfs(root,NULL,longestLen);        return longestLen;    }private:    pair
dfs(TreeNode *root,TreeNode*pre,int &longestLen) { if(!root) return {
0,0}; pair
res1,res2; pair
left = dfs(root->left,root,longestLen); pair
right = dfs(root->right,root,longestLen); longestLen = max(longestLen,left.first+right.second+1); longestLen = max(longestLen,left.second+right.first+1); int inc = 0, dec = 0; if ( pre && root->val == pre->val + 1 ) { inc = max(left.first, right.first) + 1; } if (pre&& root->val == pre->val - 1 ) { dec = max(left.second, right.second) + 1; } return {inc,dec}; }};

 

转载于:https://www.cnblogs.com/jxr041100/p/7885766.html

你可能感兴趣的文章
实验7
查看>>
AVS 环境搭建之Ubuntu
查看>>
第十五章 项目辅助计划执行控制
查看>>
Android沉浸式(侵入式)标题栏(状态栏)Status(一)
查看>>
协方差矩阵
查看>>
linux下查看进程运行的时间
查看>>
hdu2072 字符串问题
查看>>
性能测试场景设计之容量测试场景设计
查看>>
SQL - group by
查看>>
codeforces632E 小偷与商店
查看>>
js数组删除元素、json删除元素
查看>>
关于AS3的事件移除释疑
查看>>
cocos2d-x JS 开启远程代码调试
查看>>
手机H5,用Jquery使图片自动填满两栏式排版
查看>>
ios 沙盒路径
查看>>
CSS选择器,选择器的优先级
查看>>
【368】相关术语说明
查看>>
ASP.NET的必须知道的东东(HttpModule,HttpHandler)
查看>>
linux---finger命令
查看>>
Artech的MVC4框架学习——第四章Model元数据的解析
查看>>