程式設計之美3.8題,距離定為,樹中兩個節點之間的邊數。書中的方法並不好,將左右子樹的距離定義在節點中,一般的節點是已經定義好的,並無此項。經分析,理解編寫**如下:
**如下:
struct node;struct result
;result searchmaxdistance(node *root)
lhs=searchmaxdistance(root->pleft);
rhs=searchmaxdistance(root->pright);
result.maxdepth=max(lhs.maxdepth+1,rhs.maxdepth+1);
result.maxdistance=max(max(lhs.maxdistance,rhs.maxdistance),lhs.maxdepth+rhs.maxdepth+2);//為啥老是打錯啊,注意細節,注意啊,注意細節啊lhs.maxdepth+rhs.maxdistance+2
return result;
}
求二叉樹中節點的最大距離
遞迴求解,最大距離總是在一下兩種情況產生 情況1 最大路徑經過root 這個例子中,最長路徑經過root,其距離等於左子樹的高度 1 右子樹的高度 1 在這種情況下 如果只有左子樹,右子樹為空 最大距離 左子樹的高度 1 如果只有右子樹,左子樹為空 最大距離 右子樹的高度 1 如果既有右子樹,又有左...
求二叉樹中節點的最大距離
2010 10 26 16 03 37 分類 資料結構與演算法 標籤 proot 節點pleft pright nmaxleft 字型大小 大中小訂閱 如果我們把二叉樹看成乙個圖,父子節點之間的連線看成是雙向的,我們姑且定義 距離 為兩個節點之間邊的個數。寫乙個程式求一顆二叉樹中相距最遠的兩個節點之...
求二叉樹中節點的最大距離
如果我們把二叉樹看成乙個圖,父子之間的連線看成,姑且定義 距離 為兩個之間邊的個數。求一顆二叉樹中相距最遠兩個點之間的距離。struct node bittree int nmaxlen 0 void findmaxlen node proot if proot pleft null if proo...