|
| 1 | +/** |
| 2 | + * Definition for a binary tree node. |
| 3 | + * class TreeNode(var `val`: Int = 0) { |
| 4 | + * var left: TreeNode? = null |
| 5 | + * var right: TreeNode? = null |
| 6 | + * } |
| 7 | + */ |
| 8 | + |
| 9 | +class Solution { |
| 10 | + fun lowestCommonAncestor(root: TreeNode?, p: TreeNode?, q: TreeNode?): TreeNode? { |
| 11 | + if(root == null || root == p || root == q ) return root |
| 12 | + var left = lowestCommonAncestor(root.left, p, q) |
| 13 | + var right = lowestCommonAncestor(root.right, p, q) |
| 14 | + return if (left != null && right != null) root else if (left != null) left else right |
| 15 | + } |
| 16 | +} |
0 commit comments