求二叉樹中節點的最大距離

2021-06-22 21:46:23 字數 510 閱讀 8575

如果我們把二叉樹看成乙個圖,父子之間的連線看成,姑且定義"距離"為兩個之間邊的個數。

求一顆二叉樹中相距最遠兩個點之間的距離。

struct node

bittree;

int nmaxlen = 0;

void findmaxlen(node * proot)

if(proot->pleft==null)

if(proot->pright==null)

if(proot->pleft!=null)

if(proot->pright!=null)

if(proot->pleft!=null)

else

proot->nmaxleft = temp+1;

}if(proot->pright!=null)

else

proot->nmaxright = temp+1;

}if(proot->nmaxleft+proot->nmaxright>nmaxlen)

}

求二叉樹中節點的最大距離

遞迴求解,最大距離總是在一下兩種情況產生 情況1 最大路徑經過root 這個例子中,最長路徑經過root,其距離等於左子樹的高度 1 右子樹的高度 1 在這種情況下 如果只有左子樹,右子樹為空 最大距離 左子樹的高度 1 如果只有右子樹,左子樹為空 最大距離 右子樹的高度 1 如果既有右子樹,又有左...

求二叉樹中節點的最大距離

2010 10 26 16 03 37 分類 資料結構與演算法 標籤 proot 節點pleft pright nmaxleft 字型大小 大中小訂閱 如果我們把二叉樹看成乙個圖,父子節點之間的連線看成是雙向的,我們姑且定義 距離 為兩個節點之間邊的個數。寫乙個程式求一顆二叉樹中相距最遠的兩個節點之...

求二叉樹中節點的最大距離

今天中午的時候有人問了我乙個問題 求二叉樹中節點的最大距離。這是 程式設計之美 上的乙個問題。花了一中午的時間總算解決了這個問題,有一點是很明確的 如果把樹看做是乙個圖的話,它必然是連通的,任一節點總有路徑到其他任何節點,這個題目就是求這樣最長的一條路徑。距離最大的兩個節點可能是乙個在左子樹,乙個在...