题目
解法1:lowerest common ancester
这题关键在于:最短的路径一定是从开始节点出发到lca节点然后到结束节点这条路径
步骤如下:
- 找到lca
- 再次recursion,找到lca到两个目标节点分别的路径
- 后处理形成答案
class Solution {
public:
TreeNode* LCA(TreeNode* root, int p, int q) {
if(!root || root->val == p || root->val == q) return root;
TreeNode* left = LCA(root->left,p,q);
TreeNode* right = LCA(root->right,p,q);
if(!left) return right;
if(!right) return left;
return root;
}
bool find_path(TreeNode* root,string& path, int val){