| 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}
 |