当前位置:网站首页>310. minimum height tree
310. minimum height tree
2022-06-27 05:55:00 【Mr Gao】
310. Minimum height tree
A tree is an undirected graph , Any two of these vertices are connected by only one path . let me put it another way , Any connected graph without simple loops is a tree .
Give you a tree that contains n Tree of nodes , Marked as 0 To n - 1 . Given number n And one with n - 1 An undirected edge edges list ( Each side is a pair of labels ), among edges[i] = [ai, bi] Represents the node in the tree ai and bi There is an undirected edge between .
You can select any node in the tree as the root . When selecting a node x As the root node , Let the height of the result tree be h . In all possible trees , Tree with minimum height ( namely ,min(h)) go by the name of Minimum height tree .
Please find all Minimum height tree And press In any order Return a list of their root node labels .
Treelike Height It refers to the number of edges on the longest downward path between the root node and the leaf node .
Example 1:
Input :n = 4, edges = [[1,0],[1,2],[1,3]]
Output :[1]
explain : As shown in the figure , When the root is labeled 1 The nodes of , The height of the tree is 1 , This is the only minimum height tree .
Example 2:
Input :n = 6, edges = [[3,0],[3,1],[3,2],[3,4],[5,4]]
Output :[3,4]
/** * Note: The returned array must be malloced, assume caller calls free(). */
int min_h;
int dfs( int** edges, int edgesSize,int now_node,int h,int *r,int *rs){
int i=0;
int maxh=0;
int num=0;
for(i;i<edgesSize;i++){
if(edges[i][0]==now_node&&r[edges[i][1]]==0){
r[edges[i][1]]=1;
int max1= dfs(edges,edgesSize,edges[i][1],h+1,r,rs);
if(max1>maxh){
maxh=max1;
}
r[edges[i][1]]=0;
}
if(edges[i][1]==now_node&&r[edges[i][0]]==0){
r[edges[i][0]]=1;
int max1= dfs(edges,edgesSize,edges[i][0],h+1,r,rs);
if(max1>maxh){
maxh=max1;
}
r[edges[i][0]]=0;
}
}
if(maxh==0){
return h;
}
else{
return maxh;
}
}
int* findMinHeightTrees(int n, int** edges, int edgesSize, int* edgesColSize, int* returnSize){
int r[n];
int rs[n];
int i;
int *re=(int *)malloc(sizeof(int)*n);
for(i=0;i<n;i++){
r[i]=0;
rs[i]=0;
}
int min=1000;
for(i=0;i<n;i++){
if(rs[i]!=0){
if(rs[i]<min){
min=rs[i];
}
continue;
}
r[i]=1;
int h2=dfs(edges,edgesSize,i,1,r,rs);
rs[i]=h2;
if(h2<min){
min=h2;
}
r[i]=0;
}
printf("min %d ",min);
int size=0;
for(i=0;i<n;i++){
printf("%d| ",rs[i]);
if(rs[i]==min){
re[size++]=i;
}
}
* returnSize=size;
return re;
}
边栏推荐
- How JQ gets the ID name of an element
- C Primer Plus 第11章_字符串和字符串函数_代码和练习题
- Mechanical transcoding journal [17] template, STL introduction
- Luogu p2939 [usaco09feb]revamping trails G
- OpenCV的轮廓检测和阈值处理综合运用
- 创建一个基础WDM驱动,并使用MFC调用驱动
- Built in functions of spark
- 资深【软件测试工程师】学习线路和必备知识点
- Avoid asteroids
- Web3 has not been implemented yet, web5 suddenly appears!
猜你喜欢

How JQ gets the ID name of an element

Ad22 Gerber files Click to open the Gerber step interface. Official solutions to problems
![Navigation [machine learning]](/img/79/8311a409113331e72f650a83351b46.png)
Navigation [machine learning]

双位置继电器RXMVB2 R251 204 110DC

Leetcode298 weekly race record

Qt使用Valgrind分析内存泄漏

Go日志-Uber开源库zap使用

Dual position relay dls-34a dc0.5a 220VDC
![[nips 2017] pointnet++: deep feature learning of point set in metric space](/img/3e/0a47eecc27f236d629c611e683b37a.png)
[nips 2017] pointnet++: deep feature learning of point set in metric space

Kubesphere cluster configuration NFS storage solution - favorite
随机推荐
LeetCode-515. Find the maximum value in each tree row
多线程基础部分Part 1
Configuring the help class iconfiguration in C # NETCORE
【Cocos Creator 3.5.1】input.on的使用
Go log -uber open source library zap use
Unicast, multicast and broadcast of IP network communication
[collection] Introduction to basic knowledge of point cloud and functions of point cloud catalyst software
思维的技术:如何破解工作生活中的两难冲突?
Get system volume across platforms in unity
Two position relay hjws-9440
My opinion on test team construction
资深【软件测试工程师】学习线路和必备知识点
Jump details of item -h5 list, and realize the function of not refreshing when backing up, and refreshing when modifying data (record scroll bar)
Opencv实现对象跟踪
IAR systems fully supports Centrino technology 9 series chips
Functional continuous
双位置继电器XJLS-8G/220
【FPGA】基于bt1120时序设计实现棋盘格横纵向灰阶图数据输出
Ad22 Gerber files Click to open the Gerber step interface. Official solutions to problems
【QT小作】使用结构体数据生成读写配置文件代码