LeetCode 235----Lowest Common Ancestor of a Binary Search
来源:互联网 发布:销售数据分析ppt 编辑:程序博客网 时间:2024/06/05 14:29
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.
解题思路:
- 找到结点p,一层一层向上查找,查找右子树是否包含q;
- 若右子树不包含q,向上一层移动;
- 若p、q均找到,则返回root;
- 若root等于p或q,则root即为LCA
寻找LCA图示如下:
/** * 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==NULL) return NULL; if(root==p||root==q) return root; TreeNode* left=lowestCommonAncestor(root->left,p,q); TreeNode* right=lowestCommonAncestor(root->right,p,q); if(left&&!right) //存在左结点 return left; if(!left&&right) //存在右结点 return right; if(left&&right) return root; }};
0 0
- 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
- 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 1.Two Sum
- protobuf 在lua中的使用
- Codeforces Round #319 (Div. 1)E.Painting Edges(并查集)
- 敏捷开发之三——像橄榄球运动一样scrum
- android通知的demo之Notification
- LeetCode 235----Lowest Common Ancestor of a Binary Search
- JAVA collection 仿写 学习
- 微信商城开发实战——互动出版网
- Ogre中四元数与三维向量(Unity3D异曲同工)
- IOS开发之消息推送(APNS)
- opencv各种小程序代码
- php的会话管理
- android 提供访问主线程的4种方法
- iOS 9.0更新内容