摘要: 今天翻到了《劍指offer》面試題39,題目二中的解法二是在函數的參數列表中通過指針的方式進行傳值,而java是沒有指針的,所以函數要進行改造。然而我翻了下別人的java版本(我就想看看有什么高大上的改造,畢竟要傳遞多個參數,是不是會涉及到那么一點點設計模式呢?),簡直不能忍了,我只能 ...
題目: 輸入一課二叉樹的根結點,判斷該樹是不是平衡二叉樹。如果二叉樹中任意結點的左右子樹的深度相差不超過 ,那么它就是一棵平衡二叉樹。 思路: 重復遍歷結點 參考上一題求二叉樹的深度,先求出根結點的左右子樹的深度,然后判斷它們的深度相差不超過 ,如果否,則不是一棵二叉樹 如果是,再用同樣的方法分別判斷左子樹和右子樹是否為平衡二叉樹,如果都是,則這就是一棵平衡二叉樹。 但上面的方法在判斷子樹是否為平 ...
2015-07-26 21:26 0 1882 推薦指數:
摘要: 今天翻到了《劍指offer》面試題39,題目二中的解法二是在函數的參數列表中通過指針的方式進行傳值,而java是沒有指針的,所以函數要進行改造。然而我翻了下別人的java版本(我就想看看有什么高大上的改造,畢竟要傳遞多個參數,是不是會涉及到那么一點點設計模式呢?),簡直不能忍了,我只能 ...
重建二叉樹 題目 輸入某二叉樹的前序遍歷和中序遍歷,請重建出該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含有重復的數字。 例如,前序遍歷序列:{1,2,3,7,3,5,6,8},中序遍歷序列:{4,7,2,1,5,3,8,6} 答案 前序遍歷: 前序遍歷 ...
一、題目一:二叉樹的深度 1.1 題目說明 題目一:輸入一棵二叉樹的根結點,求該樹的深度。從根結點到葉結點依次經過的結點(含根、葉結點)形成樹的一條路徑,最長路徑的長度為樹的深度。例如下圖中的二叉樹的深度為4,因為它從根結點到葉結點最長的路徑包含4個結點(從根結點1開始,經過結點2和結點 ...
題目: 輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建出該二叉樹。假設輸入的前序遍歷和中序遍歷結果中都不含重復的數字。例如輸入前序遍歷序列{1,2,4,7,3,5,6,8}和中序遍歷序列{4,7,2,1,5,3,8,6},則重建出二叉樹並輸出他的根節點。 在二叉樹的前序遍歷中,第一個數字總是樹 ...
題目: 請實現一個函數,用來判斷一顆二叉樹是不是對稱的。 注意,如果一個二叉樹同此二叉樹的鏡像是同樣的,定義其為對稱的。 思路: 對於一棵二叉樹,從根結點開始遍歷, 如果左右子結點有一個為NULL,那么肯定不是對稱二叉樹; 如果左右子結點均不為空,但不相等,那么肯定不是對稱二叉樹 ...
一、題目:二叉樹的鏡像 題目:請完成一個函數,輸入一個二叉樹,該函數輸出它的鏡像。例如下圖所示,左圖是原二叉樹,而右圖則是該二叉樹的鏡像。 該二叉樹節點的定義如下,采用C#語言描述: 二、解題思路 2.1 核心步驟 Step1.先序遍歷原二叉樹的每個 ...
一、題目:重建二叉樹 題目:輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建出該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重復的數字。例如輸入前序遍歷序列{1,2,4,7,3,5,6,8}和中序遍歷序列{4,7,2,1,5,3,8,6},則重建出如下圖所示的二叉樹並輸出它的頭結點 ...
本文參考自《劍指offer》一書,代碼采用Java語言。 更多:《劍指Offer》Java實現合集 題目 輸入一棵二叉樹的根結點,判斷該樹是不是平衡二叉樹。如果某二叉樹中任意結點的左右子樹的深度相差不超過1,那么它就是一棵平衡二叉樹。 思路 在(55-1) 二叉樹的深度 ...