path1.end() && iter2 != path2.end() ) ?{ ? if(*iter1 == *iter2) ? ?pLast = *iter1; ? else ? ?break; ? iter1++; ? iter2++; ?} ?return pLast; } TreeNode *GetLastCommonParent(TreeNode *pRoot , TreeNode *pNode1 , TreeNode *pNode2) { ?if(pRoot == NULL || pNode1 == NULL || pNode2 == NULL) ? return? NULL; ?vector path1; ?GetNodePath(pRoot , pNode1 , path1);
?vector path2; ?GetNodePath(pRoot , pNode2 , path2); ?return GetLastCommonNode(path1 , path2); }
?
?
|