lowest-common-ancestor-of-a-binary-search-tree 1.0.0
Lowest Common Ancestor of a Binary Search Tree
Loading...
Searching...
No Matches
Solution Class Reference

Public Member Functions

TreeNodelowestCommonAncestor (TreeNode *root, TreeNode *p, TreeNode *q)
 

Detailed Description

Definition at line 16 of file main.cpp.

Member Function Documentation

◆ lowestCommonAncestor()

TreeNode * Solution::lowestCommonAncestor ( TreeNode root,
TreeNode p,
TreeNode q 
)
inline

Definition at line 19 of file main.cpp.

20 {
21 queue<TreeNode*> process_queue;
22 process_queue.push(root);
23 while (!process_queue.empty())
24 {
25 TreeNode* node = process_queue.front();
26 process_queue.pop();
27
28 if (node == p || node == q)
29 return node;
30
31 int a1 = min(p->val, q->val);
32 int a2 = max(p->val, q->val);
33
34 if (node->val > a1 && node->val < a2)
35 return node;
36
37 if (node->left)
38 process_queue.push(node->left);
39 if (node->right)
40 process_queue.push(node->right);
41 }
42 return NULL;
43 }
Definition for a binary tree node.
Definition main.cpp:9
int val
Definition main.cpp:10
TreeNode * left
Definition main.cpp:11
TreeNode * right
Definition main.cpp:12

References TreeNode::left, TreeNode::right, and TreeNode::val.

Referenced by main().


The documentation for this class was generated from the following file: