| 123456789101112131415161718192021222324252627 | 
							- /**
 
-  * Definition for a binary tree node.
 
-  * function TreeNode(val) {
 
-  *     this.val = val;
 
-  *     this.left = this.right = null;
 
-  * }
 
-  */
 
- /**
 
-  * @param {TreeNode} root
 
-  * @param {TreeNode} p
 
-  * @param {TreeNode} q
 
-  * @return {TreeNode}
 
-  */
 
- var lowestCommonAncestor = function(root, p, q) {
 
- 	let la = null
 
- 	const traversal = function(root, p, q) {
 
- 		let set1 = [], set2 = []
 
- 		if (root.left !== null) set1 = traversal(root.left, p, q)
 
- 		if (root.right !== null) set2 = traversal(root.right, p, q)
 
- 		let set3 = new Set([...set1, ...set2])
 
- 		if (root === p || root === q) set3.add(root)
 
- 		if (set3.has(p) && set3.has(q)) { la = root; return [] }
 
- 		return set3
 
- 	}
 
- 	traversal(root, p, q)
 
- 	return la
 
- }
 
 
  |