上周的今天被一道涉及二叉树直径的题卡住了(当时还用并查集试了半天),今天突然很精神,就写了这种方法(辉夜2开播了!!) 思路非常简单 0.计算左侧子节点到根节点最长距离lmax和右侧子节点到根节点最长距离rmax 1.计算所求点到根节点距离d 并判断该节点在左侧(flag=1)还是在右侧(flag=0) 2.输出 d+lmax 或者 d+rmax #include using namespace std; int tree[100000][2],ftr[100000],lmax,rmax,anx,flag; void dfs(int x,int step) { if(x!=0){