Untitled
unknown
plain_text
a year ago
900 B
5
Indexable
class Solution { private: int maxDistance = 0; public: int amountOfTime(TreeNode* root, int start) { traverse(root, start); return maxDistance; } int traverse(TreeNode* root, int start) { int depth = 0; if (root == nullptr) { return depth; } int leftDepth = traverse(root->left, start); int rightDepth = traverse(root->right, start); if (root->val == start) { maxDistance = max(leftDepth, rightDepth); depth = -1; } else if (leftDepth >= 0 && rightDepth >= 0) { depth = max(leftDepth, rightDepth) + 1; } else { int distance = abs(leftDepth) + abs(rightDepth); maxDistance = max(maxDistance, distance); depth = min(leftDepth, rightDepth) - 1; } return depth; } };
Editor is loading...
Leave a Comment