Skip to content

Commit 771d96d

Browse files
committed
LCA of Binary Tree: dfs.
1 parent d7793ba commit 771d96d

File tree

1 file changed

+24
-0
lines changed

1 file changed

+24
-0
lines changed
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
#include "../Header.h"
2+
#include "../TreeNode.h"
3+
4+
using namespace std;
5+
TreeNode * LCA = nullptr;
6+
char helper(TreeNode* root, TreeNode* p, TreeNode* q) {
7+
char flag = 0;
8+
if (root->left) flag |= helper(root->left, p, q);
9+
if (root->right) flag |= helper(root->right, p, q);
10+
if (root == p) flag |= 2;
11+
if (root == q) flag |= 1;
12+
if (flag == 3) {
13+
LCA = root;
14+
return 0;
15+
} else return flag;
16+
}
17+
18+
TreeNode* lowestCommonAncestor(TreeNode* root, TreeNode* p, TreeNode* q) {
19+
if (!p) return q;
20+
if (!q) return p;
21+
helper(root, p, q);
22+
return LCA;
23+
}
24+

0 commit comments

Comments
 (0)