原文:編程之美:求二叉樹中節點的最大距離

.問題描述 寫一個程序求一棵二叉樹相距最遠的兩個節點之間的距離 如下圖: .分析與解法 對於任意一個節點,以該節點為根,假設這個根有k個孩子節點,那么距離最遠的兩個節點U與V之間的路徑與這個根節點的關系有兩種。 .若路徑經過Root,則U和V屬於不同子樹的,且它們都是該子樹中到根節點最遠的節點,否則跟它們的距離最遠相矛盾 .如果路徑不經過Root,那么它們一定屬於根的k個子樹之一,並且它們也是該 ...

2012-08-18 14:50 0 4451 推薦指數:

查看詳情

二叉樹節點最大距離編程之3.8)

問題定義 把二叉樹看成一個圖,父子節點之間的連線看成是雙向的,定義“距離”為兩個節點之間的邊數。例如下圖中最大距離為紅線的條數為6. 分析 定義:過以節點x作為根節點的子樹節點間的最大距離為Dis(x)。 上圖,左圖中Dis(根節點)最大,右圖中Dis(根節點->left ...

Wed Feb 19 08:45:00 CST 2014 1 5038
【算法題目】二叉樹節點最大距離

  如果我們把二叉樹視為一個圖,父子節點之間的連線視為雙向的,我們姑且定義為“舉例”為兩節點之間邊的個數。寫一個程序一顆二叉樹相距最遠的兩個節點之間的距離(《編程之》3.8) 思路:如果兩個節點相距最遠,一定是兩個葉子節點,或者是一個葉子節點到它的根節點。    根據相距最遠的兩個 ...

Wed Aug 19 07:12:00 CST 2015 0 3260
二叉樹進階之一棵二叉樹結點間最大距離

轉載請注明原文地址:http://www.cnblogs.com/ygj0930/p/6618074.html 二叉樹的結點間距離:從結點A出發到達B,每個結點只能走一次,AB路徑上的結點數就是AB間距離。 由於從一個結點出發時,只有兩種方向可走:向上經過父節點到達它的兄弟 ...

Sun Mar 26 03:16:00 CST 2017 1 4057
二叉樹 Java 實現 前序遍歷 序遍歷 后序遍歷 層級遍歷 獲取葉節點 寬度 ,高度,隊列實現二叉樹遍歷 二叉樹最大距離

數據結構中一直對二叉樹不是很了解,今天趁着這個時間整理一下 許多實際問題抽象出來的數據結構往往是二叉樹的形式,即使是一般的樹也能簡單地轉換為二叉樹,而且二叉樹的存儲結構及其算法都較為簡單,因此二叉樹顯得特別重要。 二叉樹(BinaryTree)是n(n≥0)個結點的有限集,它或者是 ...

Tue May 02 23:33:00 CST 2017 0 2056
算法題之二叉樹最大距離

二叉樹是一種非常經典的數據結構。如果我們把二叉樹看成一個圖,父子節點之間的連線看成是雙向的,我們姑且定義"距離"為兩節點之間邊的個數。寫一個程序一棵二叉樹相距最遠的兩個節點之間的距離。 下面我們隨意構造出一棵二叉樹,計算它的最大距離,如上圖,節點之間單位距離為1,最大距離(紅色線條 ...

Thu Apr 27 05:47:00 CST 2017 0 1213
層次遍歷二叉樹編程之3.10)

問題(假定根節點位於第0層) 1. 層次遍歷二叉樹(每層換行分開) 2. 層次遍歷二叉樹指定的某層 例如 上圖中 1. 2. 可以看出得出第二問的解,第一問迎刃而解了,所以從問題二下手 分析與解 1. 層次遍歷二叉樹指定的某層 可以得出 ...

Fri Feb 21 07:58:00 CST 2014 1 11413
二叉樹任意兩個結點的距離

二叉樹任意兩個結點的距離 實現步驟: 計算跟到第一個結點的距離; 計算跟到第二個結點的距離; 計算lca; 計算跟到lca結點的距離; 結果為(1) + (2) - 2 * (4),因為重復計算了兩次的從跟到lca結點的距離; 1 class ...

Sat Aug 12 08:20:00 CST 2017 1 1858
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM