二叉樹中任意兩個節點間的距離 原始碼

2021-06-07 01:27:19 字數 742 閱讀 3059

#include #include templatestruct bnode 

void visit()

t data;

bnode*left;

bnode*right;

};// 獲取訪問路徑

templatestd::list*>* getpath(bnode*root, bnode*node)

iter = iter->left;

}while (!plist->empty() && iter == plist->back()->right)

if (!plist->empty()) }}

return null;

}// 計算任意兩個節點間的距離

templateint distance(bnode*root, bnode*node1, bnode*node2)

size_t len = plist1->size() + plist2->size();

delete plist1;

delete plist2;

return len;

}return 0;

}// 測試**

int main()

delete plist;*/

std::cout << distance(&root, &nodef, &nodeg) << std::endl;

return 0;

}

二叉樹兩個節點間的距離

距離是指連線兩個節點需要的最小的邊的條數。1找到節點的共同祖先 2 找到節點到共同祖先的距離dist,可以想到這個距離disthelper 節點到root距離 root到共同祖先的距離 3 兩個節點間距離 節點1到共同祖先的距離dist1 節點2到共同祖先的距離dist2 節點1到root距離 ro...

求乙個二叉樹中任意兩個節點間的距離,

網易有道筆試 1 求乙個二叉樹中任意兩個節點間的距離,兩個節點的距離的定義是 這兩個節點間邊的個數,比如某個孩子節點和父節點間的距離是1,和相鄰兄弟節點間的距離是2,優化時間空間複雜度。c codes as below using system namespace node i2 new node ...

求二叉樹中任意兩個結點的距離

實現步驟 計算跟到第乙個結點的距離 計算跟到第二個結點的距離 計算lca 計算跟到lca結點的距離 結果為 1 2 2 4 因為重複計算了兩次的從跟到lca結點的距離 class node object def init self value 0 self value value self left...