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