Leetcode NO.235 Lowest Common Ancestor of a Binary Search Tree
来源:互联网 发布:能看伪恋的漫画软件 编辑:程序博客网 时间:2024/05/17 00:00
本题题目要求如下:
Given a binary search tree (BST), find the lowest common ancestor (LCA) of two given nodes in the BST.
According to the definition of LCA on Wikipedia: “The lowest common ancestor is defined between two nodes v and w as the lowest node in T that has both v and w as descendants (where we allow a node to be a descendant of itself).”
_______6______ / \ ___2__ ___8__ / \ / \ 0 _4 7 9 / \ 3 5
For example, the lowest common ancestor (LCA) of nodes 2
and 8
is 6
. Another example is LCA of nodes 2
and 4
is 2
, since a node can be a descendant of itself according to the LCA definition.
首先设定LCA为root,
(1)如果root->val比p,q值都小,LCA要设定为root->right
(2)如果root->val比p,q都大,LCA要设定为root->left
(3)如果root->val在p,q之间,则结束循环,LCA得到最终值:root
用recursive运行上面三步,如果遇到(3)跳出,返回最终值
代码如下:
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public: TreeNode* lowestCommonAncestor(TreeNode* root, TreeNode* p, TreeNode* q) { if (root->val < p->val and root->val < q->val) { return lowestCommonAncestor(root->right, p, q); } else if (root->val > p->val and root->val > q->val) { return lowestCommonAncestor(root->left, p, q); } else { return root; } }};
- leetcode 235: Lowest Common Ancestor of a Binary Search Tree
- 【LeetCode】235 Lowest Common Ancestor of a Binary Search Tree
- leetcode 235 Lowest Common Ancestor of a Binary Search Tree
- leetcode-235-Lowest Common Ancestor of a Binary Search Tree
- leetcode[235]:Lowest Common Ancestor of a Binary Search Tree
- LeetCode 235: Lowest Common Ancestor of a Binary Search Tree
- [leetcode 235]Lowest Common Ancestor of a Binary Search Tree
- leetCode #235 Lowest Common Ancestor of a Binary Search Tree
- [LeetCode 235] Lowest Common Ancestor of a Binary Search Tree
- Leetcode 235 Lowest Common Ancestor of a Binary Search Tree
- Leetcode #235 Lowest Common Ancestor of a Binary Search Tree
- LeetCode(235) Lowest Common Ancestor of a Binary Search Tree
- leetcode 235: Lowest Common Ancestor of a Binary Search Tree
- leetcode: (235) Lowest Common Ancestor of a Binary Search Tree
- LeetCode 235: Lowest Common Ancestor of a Binary Search Tree
- LeetCode 235: Lowest Common Ancestor of a Binary Search Tree
- LeetCode 235:Lowest Common Ancestor of a Binary Search Tree
- LeetCode 235 Lowest Common Ancestor of a Binary Search Tree
- 开始刷leetcode day63:Contains Duplicate III
- #leetcode#Fraction to Recurring Decimal
- 2015.07.12总结
- Qt Quick之StackView详解(2)
- 开始刷leetcode day63:House Robber II
- Leetcode NO.235 Lowest Common Ancestor of a Binary Search Tree
- IDC中招刷流量病毒,无法访问的解决过程
- 连接池
- 深入Java核心 Java内存分配原理精讲
- MVC模式
- 日期类操作详解
- 黑马程序员-java高新技术(反射)
- iOS图片拉伸技巧
- loadView、viewDidLoad及viewDidUnload的关系