Lowest Common Ancestor of a Binary Tree, with Parent Pointer
2014-12-16 23:51
471 查看
Given a binary tree, find the lowest common ancestor of two given nodes in tree. Each node contains a parent pointer which links to its parent.
int getHeight(Node* p) { int height = 0; while (p) { height++; p = p->parent; } return height; } Node* LCA(Node* p, Node *q) { int h1 = getHeight(p); int h2 = getHeight(q); if (h1 > h2) { swap(h1, h2); swap(p, q); } for (int h = 0; h < h2-h1; h++) { q = q->parent; } while (p && q) { if (p == q) return p; p = p->parent; q = q->parent; } return NULL; }
相关文章推荐
- My Solution to Lowest Common Ancestor of a Binary Tree Part II (Node has parent Pointer)
- 236. Lowest Common Ancestor of a Binary Tree
- Leetcode 235. Lowest Common Ancestor of a Binary Search Tree
- Lowest Common Ancestor of a Binary Search Tree
- (medium)LeetCode 236.Lowest Common Ancestor of a Binary Tree
- leetcode--Lowest Common Ancestor of a Binary Search Tree
- LeetCode 235. Lowest Common Ancestor of a Binary Search Tree
- LeetCode Lowest Common Ancestor of a Binary Tree
- 236. Lowest Common Ancestor of a Binary Tree
- 236. Lowest Common Ancestor of a Binary Tree
- lletcode-236. Lowest Common Ancestor of a Binary Tree
- 236. Lowest Common Ancestor of a Binary Tree
- 236. Lowest Common Ancestor of a Binary Tree
- 235. Lowest Common Ancestor of a Binary Search Tree
- LeetCode Lowest Common Ancestor of a Binary Search Tree 刷题 OJ 算法
- [Java]寻找最低公共祖先(排序二叉树)Lowest Common Ancestor of a Binary Search Tree
- LeetCode------Lowest Common Ancestor of a Binary Search Tree
- LeetCode 236. Lowest Common Ancestor of a Binary Tree
- [leetcode] 236.Lowest Common Ancestor of a Binary Tree
- [leetcode] 236. Lowest Common Ancestor of a Binary Tree