原创 【劍指Offer】:面試題39:平衡二叉樹

整理自劍指Offer 一:題目描述 輸入一棵二叉樹,判斷該二叉樹是否是平衡二叉樹。 二:解題思路 如果某二叉樹中任意結點的左右子樹的深度相差不超過1,那麼它就是一棵平衡二叉樹。 每個結點只遍歷一次的解法: 用後續遍歷的方式遍歷二叉

原创 【劍指Offer】:從上往下打印二叉樹

一:題目描述 從上往下打印出二叉樹的每個節點,同層節點從左至右打印。 二:解題思路 藉助隊列實現 在之前的一道劍指OFFER當中用到相同思想,比這道題個複雜,還要保證二叉樹每一層要換行。 三:代碼實現 /* struct TreeNode

原创 【劍指Offer】面試題60:把二叉樹打印成多行

整理自劍指Offer 一:題目描述 從上到下按層打印二叉樹,同一層結點從左至右輸出。每一層輸出一行 二:解題思路 層次遍歷二叉樹,用隊列保存將要打印的結點 需要用到兩個變量: 1.表示當前層中還沒有打印的結點的數 2.表示下一層節

原创 【劍指Offer】面試題59:對稱二叉樹

整理自劍指Offer 一:題目描述 請實現一個函數,用來判斷一顆二叉樹是不是對稱的。注意,如果一個二叉樹同此二叉樹的鏡像是同樣的,定義其爲對稱的。 二:解題思路 看到這個題第一反應是求二叉樹的鏡像二叉樹,然後同時遍歷兩個樹,進行比較

原创 【劍指Offer】面試題14:調整數組順序使基數位於偶數的前面

一:題目描述 輸入一個整數數組,實現一個函數來調整該數組中數字的順序,使得所有的奇數位於數組的前半部分,所有的偶數位於位於數組的後半部分,並保證奇數和奇數,偶數和偶數之間的相對位置不變。 二:解題思路 利用空間換時間,定義一個輔助數組。

原创 【劍指Offer】面試題22:棧的壓入,彈出序列

一:題目描述 輸入兩個整數序列,第一個序列表示棧的壓入順序,請判斷第二個序列是否爲該棧的彈出順序。假設壓入棧的所有數字均不相等。例如序列1,2,3,4,5是某棧的壓入順序,序列4,5,3,2,1是該壓棧序列對應的一個彈出序列,但4,3,5

原创 【劍指Offer】面試題24:二叉搜索樹的後續遍歷序列

整理自劍指Offer 一:題目描述 輸入一個整數數組,判斷該數組是不是某二叉搜索樹的後序遍歷的結果。如果是則輸出Yes,否則輸出No。假設輸入的數組的任意兩個數字都互不相同 二:解題思路 二叉搜索樹: 1.是二叉樹 2.是符合一定規則

原创 【劍指Offer】面試題42:反轉單詞順序

整理自劍指Offer 一:題目描述 牛客最近來了一個新員工Fish,每天早晨總是會拿着一本英文雜誌,寫些句子在本子上。同事Cat對Fish寫的內容頗感興趣,有一天他向Fish借來翻看,但卻讀不懂它的意思。例如,“student. a a

原创 【劍指Offer】面試題11:數值的整數次方

整理自劍指Offer 一:題目描述 給定一個double類型的浮點數base和int類型的整數exponent。求base的exponent次方。 二:解題思路 本題需要注意幾個點 1.整數次方包括正數,負數,0           

原创 【劍指Offer】面試題46:求1+2+3+...+n

一:題目描述 求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等關鍵字及條件判斷語句(A?B:C)。 二:解題思路 不能用上面提到的運算,還可以使用+ -,位運算符 該題的思路應

原创 【劍指Offer】:面試題27:二叉搜索樹與雙鏈表

整理自劍指Offer 一:題目描述 輸入一棵二叉搜索樹,將該二叉搜索樹轉換成一個排序的雙向鏈表。要求不能創建任何新的結點,只能調整樹中結點指針的指向。 二:代碼實現 在二叉樹中,每個節點都有兩個指向子結點的指針。在雙向鏈表中,每個節

原创 【劍指Offer】面試題20:順時針打印矩陣

整理自劍指Offer 一:題目描述 輸入一個矩陣,按照從外向裏以順時針的順序依次打印出每一個數字,例如,如果輸入如下矩陣: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 則依次打印出數字1,2,3,4,8

原创 【劍指Offer】面試題18:樹的子結構

思路整理自劍指Offer 一:題目描述 輸入兩棵二叉樹A,B,判斷B是不是A的子結構。(ps:我們約定空樹不是任意一個樹的子結構) 二:解題思路 要查找樹A中找到和樹B結構一樣的子樹: 第一步:在樹A中找到和B的根節點的值一樣的結點R

原创 【劍指Offer】面試題58:二叉樹的下一個結點

整理自劍指Offer 一:題目描述 給定一個二叉樹和其中的一個結點,請找出中序遍歷順序的下一個結點並且返回。注意,樹中的結點不僅包含左右子結點,同時包含指向父結點的指針。 二:解題分析 上圖紅色的是指向父結點的指針 上圖二叉樹中序

原创 【劍指Offer】面試題21:包含min函數的棧

思路整理自劍指Offer 一:題目描述 定義棧的數據結構,請在該類型中實現一個能夠得到棧最小元素的min函數。 二:解題思路 剛看時讀題,並沒有很清楚的理解題目的意思,看了解析後才明白,題目的意思可簡單理解爲: 一批數據入棧後,你