/** * Definition for a binary tree node. * public class TreeNode {* int val, * TreeNode left, * TreeNode right; * TreeNode (int x) {val = x;} *} */public class Solution {public TreeNode lowestcommonancestor (TreeNode root, TreeNode p, TreeNode q) {if (root = = NULL) return null; else if (p = = null) return q; else if (q = = null) return p; else if (P.val < Q.val) {if (Root.val > P.val && root.val < q.val) return root; else if (Root.val = = P.val | | root.val = = q.val) return root; else if (Root.val < P.val) return Lowestcommonancestor (Root.right, p, q); else return Lowestcommonancestor (Root.left, p, q); } else{if (Root.val > Q.val && root.val < p.val) return root; else if (Root.val = = P.val | | root.val = = q.val) return root; else if (Root.val < Q.val) return Lowestcommonancestor (Root.right, p, q); else return LowEstcommonancestor (Root.left, p, q); } }}
Jan 12-lowest Common Ancestor of a Binary Search Tree; Tree; BST; recursion;