Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int ans=0;
- int fun(struct TreeNode* node, int k)
- {
- int lk = fun(node.left, k),rk = fun(node.right, k);
- bool isleaf = (lk == -1 && lk == rk);
- if (lk == 0 || rk == 0 || (isleaf && k == 0))
- ans+=node->data;
- if (isleaf && k > 0)
- return k - 1;
- if (lk > 0 && lk < k)
- return lk - 1;
- if (rk > 0 && rk < k)
- return rk - 1;
- return -2;
- }
- int Kdistance(TreeNode* root,int k)
- {
- if(root==NULL) return -1;
- fun(root,k);
- return ans;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement