LeetCode 298. 二叉树最长连续序列(自顶向下)
生活随笔
收集整理的這篇文章主要介紹了
LeetCode 298. 二叉树最长连续序列(自顶向下)
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
文章目錄
- 1. 題目
- 2. 解題
1. 題目
給你一棵指定的二叉樹,請(qǐng)你計(jì)算它最長(zhǎng)連續(xù)序列路徑的長(zhǎng)度。
該路徑,可以是從某個(gè)初始結(jié)點(diǎn)到樹中任意結(jié)點(diǎn),通過(guò)「父 - 子」關(guān)系連接而產(chǎn)生的任意路徑。
這個(gè)最長(zhǎng)連續(xù)的路徑,必須從父結(jié)點(diǎn)到子結(jié)點(diǎn),反過(guò)來(lái)是不可以的。
示例 1: 輸入:1\3/ \2 4\5輸出: 3 解析: 當(dāng)中,最長(zhǎng)連續(xù)序列是 3-4-5,所以返回結(jié)果為 3示例 2: 輸入:2\3/ 2 / 1輸出: 2 解析: 當(dāng)中,最長(zhǎng)連續(xù)序列是 2-3。注意,不是 3-2-1,所以返回 2。來(lái)源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/binary-tree-longest-consecutive-sequence
著作權(quán)歸領(lǐng)扣網(wǎng)絡(luò)所有。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系官方授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。
2. 解題
class Solution {int maxlen = 1; public:int longestConsecutive(TreeNode* root) {if(!root) return 0;dfs(root, 1);return maxlen;}void dfs(TreeNode* root, int len){if(!root) return;maxlen = max(maxlen, len);if(root->left){if(root->val+1 == root->left->val)dfs(root->left, len+1);//滿足連續(xù),長(zhǎng)度+1elsedfs(root->left, 1);//不滿足,從新開始}if(root->right){if(root->val+1 == root->right->val)dfs(root->right, len+1);elsedfs(root->right, 1);}} };68 ms 33.3 MB
我的CSDN博客地址 https://michael.blog.csdn.net/
長(zhǎng)按或掃碼關(guān)注我的公眾號(hào)(Michael阿明),一起加油、一起學(xué)習(xí)進(jìn)步!
總結(jié)
以上是生活随笔為你收集整理的LeetCode 298. 二叉树最长连续序列(自顶向下)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: LeetCode 311. 稀疏矩阵的乘
- 下一篇: LeetCode 966. 元音拼写检查