235.[Leetcode]Lowest Common Ancestor of a Binary Search Tree
2016-05-02 20:46
423 查看
class Solution { public: TreeNode* lowestCommonAncestor(TreeNode* root, TreeNode* p, TreeNode* q) { TreeNode* temp = root; //首先如果根节点和其中一个相同,那么肯定返回根节点 if(temp == q || temp == p) { return root; } while (temp!=NULL) { if(IsNode(temp->left,p) && IsNode(temp->left,q)) temp = temp->left; // 如果p,q都是temp的左子节点的子节点,则关注点移到左边,因为右边已经没有可能了 else if(IsNode(temp->right,p) && IsNode(temp->right,q)) temp = temp->right; // 同理 else break; // 如果两边都不是,那么肯定是本身是一个LCA } return temp; } // isNode 用来判断是否 n 是 root 的子节点 bool IsNode(TreeNode* root,TreeNode* n) { if(root == n) return true; if(root == NULL) return false; else return IsNode(root->right,n) || IsNode(root->left,n); } };
相关文章推荐
- 判定表
- atoi()函数的应用
- Python challenge
- OpenCV Error: Assertion failed (size.width>0 && size.height>0) in cv::imshow
- hdu 1719 / 哈理工 oj 2118 Friend number【递推+思维】
- 二叉树的构造(二)
- 206.[LeetCode]Reverse Linked List
- 13.[LeetCode]Roman to Integer
- 智能预判 (一:线程的开启)
- iOS UIKit:viewController之Present (3)
- CSU 1510 Happy Robot DP
- quick-lua文件加密步骤
- centos7下添加常用YUM源(EPEL/Remi/RPMforge/php/Nginx)
- python 的文件读写方法:read readline readlines wirte writelines
- 1084. Broken Keyboard (20)
- HDU 2032 杨辉三角(DP)
- 169.[LeetCode]Majority Element
- 第9周学习总结
- 【Unity】11.1 角色控制器 (Character Controller)
- 217.[Leetcode]Contains Duplicate