(尊重劳动成果,转载请注明出处:http://blog.csdn.net/qq_25827845/article/details/74612786冷血之心的博客)
剑指Offer(第二版)面试案例:树中两个节点的最低公共祖先节点
题目:输入两个树节点,求它们的最低公共祖先节点。
反问:这棵树是不是二叉树?
面试官:是二叉树,并且是二叉搜索树。
思路:
二叉搜索树是经过排序的,位于左子树的节点都比父节点小,位于右子树的节点都比父节点大。既然要找最低的公共祖先节点,我们可以从根节点开始进行比较。
若当前节点的值比两个节点的值都大,那么最低的祖先节点一定在当前节点的左子树中,则遍历当前节点的左子节点;
反之,若当前节点的值比两个节点的值都小,那么最低的祖先节点一定在当前节点的右子树中,则遍历当前节点的右子节点;