
LCA
最近公共祖先
SYaoJun
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
1143 Lowest Common Ancestor (30 分)
两个测试点超时 版本1 #include<bits/stdc++.h> using namespace std; struct node{ int x; node* left; node* right; }; //在线建树很费时 void create(node* &root,int v){ if(root == NULL){ root = new node; ...原创 2019-07-24 11:29:07 · 325 阅读 · 0 评论 -
最近公共祖先
倍增LCA 时间和空间复杂度分别是 O((n+q)logn) 和 O(nlogn) 。 1.DFS求每个节点的深度 2.倍增跳跃祖先节点预处理 3.如果两节点不在同一高度,则让较深的高度u跳跃到较浅的高度v来。 4.两个节点同时跳跃,先从大的跳跃幅度开始。 5.直到最后跳跃到最近公共祖先的下一层为止 #include<cstdio> #include<algorithm> ...原创 2019-02-14 23:24:30 · 147 阅读 · 0 评论 -
1151 LCA in a Binary Tree (30 分)
题目链接 LCA核心 这几行代码简直优美到爆,比我看了一天的倍增和tarjan美观多了。 node* LCA(node* root, int u, int v){ if(root == NULL) return NULL; if(root->x == u || root->x==v) return root; node* l = LCA(root->left, u, v);...原创 2019-07-24 15:02:47 · 173 阅读 · 0 评论 -
236. Lowest Common Ancestor of a Binary Tree
最近公共祖先的经典题 /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * ...原创 2019-08-31 22:16:19 · 108 阅读 · 0 评论 -
235. Lowest Common Ancestor of a Binary Search Tree
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */ clas...原创 2019-09-06 09:15:57 · 211 阅读 · 0 评论