lc298-Binary Tree Longest Consecutive Sequence 發表於 2016-10-17 | 分類於 leetcode | 0 comments | 1234567891011121314151617181920212223242526272829303132333435/** * 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 {private: int max_l = INT_MIN;public: void sol(TreeNode* r, int prev, int cur_l) { if (r == nullptr) { if (cur_l > max_l) max_l = cur_l; cur_l = 1; return; } // cout << "val "<<r->val << " prev" << prev << " cur "<< cur_l << endl; if ((r -> val) == prev + 1) cur_l++; else { if (cur_l > max_l) max_l = cur_l; cur_l = 1; } sol(r->left, r->val, cur_l); sol(r->right, r->val, cur_l); } int longestConsecutive(TreeNode* root) { if (root == nullptr) return 0; sol(root, INT_MIN, 1); return max_l; }};