題目: 輸入一課二叉樹的根結點,判斷該樹是不是平衡二叉樹。如果二叉樹中任意結點的左右子樹的深度相差不超過1,那么它就是一棵平衡二叉樹。 思路: 1、重復遍歷結點 參考上一題求二叉樹的深度,先求出根結點的左右子樹的深度,然后判斷它們的深度相差不超過1,如果否,則不是一棵二叉樹;如果是,再用 ...
摘要: 今天翻到了 劍指offer 面試題 ,題目二中的解法二是在函數的參數列表中通過指針的方式進行傳值,而java是沒有指針的,所以函數要進行改造。然而我翻了下別人的java版本 我就想看看有什么高大上的改造,畢竟要傳遞多個參數,是不是會涉及到那么一點點設計模式呢 ,簡直不能忍了,我只能用一句話形容: 一本正經的胡說八道 ,不過我就是喜歡看你胡說八道還迷之自信的樣子。 下面吐槽一下這個版本的ja ...
2017-05-15 18:19 0 2181 推薦指數:
題目: 輸入一課二叉樹的根結點,判斷該樹是不是平衡二叉樹。如果二叉樹中任意結點的左右子樹的深度相差不超過1,那么它就是一棵平衡二叉樹。 思路: 1、重復遍歷結點 參考上一題求二叉樹的深度,先求出根結點的左右子樹的深度,然后判斷它們的深度相差不超過1,如果否,則不是一棵二叉樹;如果是,再用 ...
重建二叉樹 題目 輸入某二叉樹的前序遍歷和中序遍歷,請重建出該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含有重復的數字。 例如,前序遍歷序列:{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},則重建出如下圖所示的二叉樹並輸出它的頭結點 ...
二叉樹的先序,中序,后序如何遍歷,不在此多說了。直接看題目描述吧(題目摘自九度oj劍指offer面試題6): 輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建出該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重復的數字。例如輸入前序遍歷序列{1,2,4,7,3,5,6,8}和中序遍歷序列 ...