public class DiameterOfTree { public static int diameter = 0; public static int getDiameter(BinaryTreeNode root) { if (root != null) { ...
26classSolution{public: vector<vector<int>>levelOrderBottom(TreeNode* root) {if(!root)returnvector<vector<int>>(); vector<vector<int> > res; queue<TreeNode*> q; q.push(root);while(!q.empty()) { vector<int> level;intsize = q.size();for(inti =0; i < size; ++i) { TreeNode*...
Questions please seeHackerRank. It was too long. In simple, how can you check if a tree is a binary search tree? Idea Read the binary search tree from leftmost to rightmost, and make sure the order is always increasing. If you still remember how to do an in-order recursive visit for ...
1/**2* Definition for binary tree3* struct TreeNode {4* int val;5* TreeNode *left;6* TreeNode *right;7* TreeNode(int x) : val(x), left(NULL), right(NULL) {}8* };9*/10classSolution {11public:12TreeNode *sortedArrayToBST(vector<int> &num,intstart,intend) {13if(start >en...
* Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * };*/classSolution { vector<vector<int>>ret;intgo(TreeNode *p)//return max height{if(!p)return0;inthl = ...
Not hard to find a solution, but there are several corner cases.class Solution {public: /** * @param root: The root of the binary search tree. ...
classSolution {public:voidserial(TreeNode *root, vector<int> &vec) {if(!root)return;if(root->left) serial(root->left, vec); vec.push_back(root->val);if(root->right) serial(root->right, vec); }boolisValidBST(TreeNode *root) {if(!root)returntrue; ...
typedef unordered_map<int, unsigned>HM;classSolution { HM go(TreeNode*p) {if(!p)returnHM(); auto rl= go(p->left); auto rr= go(p->right); HM r=rl;for(auto &kv : rr) r[kv.first] +=kv.second; r[p->val] ++;returnr; ...