原创 劍指offer | 二叉樹的下一個結點

二叉樹的下一個結點 描述 給定一個二叉樹和其中的一個結點,請找出中序遍歷順序的下一個結點並且返回。注意,樹中的結點不僅包含左右子結點,同時包含指向父結點的指針。 代碼 (Java) /* public class TreeLink

原创 劍指offer | 正則表達式匹配

正則表達式匹配 描述 請實現一個函數用來匹配包括’.‘和’*‘的正則表達式。模式中的字符’.‘表示任意一個字符,而’*'表示它前面的字符可以出現任意次(包含0次)。 在本題中,匹配是指字符串的所有字符匹配整個模式。例如,字符串"a

原创 劍指offer | 二叉搜索樹與雙向鏈表

二叉搜索樹與雙向鏈表 描述 輸入一棵二叉搜索樹,將該二叉搜索樹轉換成一個排序的雙向鏈表。要求不能創建任何新的結點,只能調整樹中結點指針的指向。 代碼 (Java) /** public class TreeNode { i

原创 劍指offer | 二叉樹中和爲某一值的路徑

二叉樹中和爲某一值的路徑 描述 輸入一顆二叉樹的跟節點和一個整數,打印出二叉樹中結點值的和爲輸入整數的所有路徑。路徑定義爲從樹的根結點開始往下一直到葉結點所經過的結點形成一條路徑。(注意: 在返回值的list中,數組長度大的數組靠

原创 劍指offer | # 整數中1出現的次數(從1到n整數中1出現的次數)

整數中1出現的次數(從1到n整數中1出現的次數) 描述 求出任意非負整數區間中1出現的次數(從1 到 n 中1出現的次數)。 代碼 (Java) public class Solution { public int Num

原创 劍指offer | 包含min函數的棧

包含min函數的棧 描述 定義棧的數據結構,請在該類型中實現一個能夠得到棧中所含最小元素的min函數(時間複雜度應爲O(1))。 代碼 (Java) import java.util.Stack; public class So

原创 劍指offer | 合併兩個排序的鏈表

合併兩個排序的鏈表 描述 輸入兩個單調遞增的鏈表,輸出兩個鏈表合成後的鏈表,當然我們需要合成後的鏈表滿足單調不減規則。 代碼 (Java) /* public class ListNode { int val; L

原创 劍指offer | 兩個鏈表的第一個公共結點

兩個鏈表的第一個公共結點 描述 輸入兩個鏈表,找出它們的第一個公共結點。 代碼 (Java) /* public class ListNode { int val; ListNode next = null;

原创 劍指offer | # 數值的整數次方

數值的整數次方 描述 給定一個double類型的浮點數base和int類型的整數exponent。求base的exponent次方。 保證base和exponent不同時爲0 代碼 (Java) public class Solu

原创 劍指offer | 平衡二叉樹

平衡二叉樹 描述 輸入一棵二叉樹,判斷該二叉樹是否是平衡二叉樹。 代碼 (Java) public class Solution { private boolean IsBalanced = false; publ

原创 劍指offer | 最小的K個數

最小的K個數 描述 輸入n個整數,找出其中最小的K個數。例如輸入4,5,1,6,2,7,3,8這8個數字,則最小的4個數字是1,2,3,4。 代碼 import java.util.ArrayList; import java.u

原创 劍指offer | 醜數

醜數 描述 把只包含質因子2、3和5的數稱作醜數(Ugly Number)。例如6、8都是醜數,但14不是,因爲它包含質因子7。 習慣上我們把1當做是第一個醜數。求按從小到大的順序的第N個醜數。 代碼 (Java) public

原创 劍指offer | 第一個只出現一次的字符

第一個只出現一次的字符 描述 在一個字符串(0<=字符串長度<=10000,全部由字母組成)中找到第一個只出現一次的字符,並返回它的位置, 如果沒有則返回 -1(需要區分大小寫)。 代碼 (Java) public class S

原创 劍指offer | # 數組中的逆序對

數組中的逆序對 描述 在數組中的兩個數字,如果前面一個數字大於後面的數字,則這兩個數字組成一個逆序對。輸入一個數組,求出這個數組中的逆序對的總數P。並將P對1000000007取模的結果輸出。 即輸出P%1000000007。 代

原创 劍指offer | 反轉鏈表

反轉鏈表 描述 輸入一個鏈表,反轉鏈表後,輸出新鏈表的表頭。 代碼 (Java) /* public class ListNode { int val; ListNode next = null; Lis