《劍指offer》筆記 第三章 4

2021-08-03 15:56:45 字數 1103 閱讀 4381

面試題24:翻轉鍊錶

定義乙個函式,輸入乙個鍊錶的頭節點,翻轉該鍊錶並輸出翻轉後的頭節點。

struct listnode

測試用例:

功能測試:輸入的鍊錶含多個節點/乙個節點;

特殊輸入:鍊錶是null;

分析:

2.    翻轉後的頭指標要指向翻轉前的尾節點;翻轉後的尾節點的要指向null;

面試題25:合併兩個排序的鍊錶

輸入兩個遞增排序的鍊錶,合併這兩個鍊錶並使新鍊錶的節點仍按是遞增排序的。

測試用例:

功能測試:輸入兩個鍊錶中有多個節點/只有乙個節點;節點值互不相等/存在相等;

特殊輸入:兩個鍊錶中乙個頭節點為null;兩個煉表頭節點都為null;;

分析:

1.    兩個鍊錶有乙個為空,則返回兩乙個另乙個煉表頭節點;都為空返回null;

2.    比較兩個鍊錶的頭節點,較小的作為新鏈的頭節點,新鏈頭節點的下乙個節點是 去掉所選節點後 的兩個鏈的頭節點;

3.    可用遞迴實現;

面試題26:樹的子結構

輸入兩棵二叉樹a和b,判斷b是不是a的子樹。

struct binarytreenode

測試用例:

功能測試:b是/不是a的子樹;b的節點右分叉(不是完全二叉樹);只有左子節點/右子節點;

特殊輸入:樹a和b都是null;樹a和b有乙個是null;

分析:

1.    判斷兩個小數是否相等,不能用「==」,計算機表示小數都有誤差,只能判斷兩個小數的差絕對值是否小於乙個很小的數(如0.000001);

2.    每次使用指標時,問自己這個指標是否可能是null,是的話該如何處理;

3.5 總結

規範性:書寫清晰、布局合理、命名合理

完整性:基本功能、邊界條件、錯誤處理

魯棒性:採取防禦性變成;在函式入口判斷輸入的有效性,處理無效的輸入;

《劍指offer》筆記 第三章 3

面試題21 調整陣列順序使奇數字於偶數之前 實現乙個函式,輸入乙個整數陣列,調整該陣列中數字的順序,使得所有奇數字於陣列的前半部分,所有偶數字於陣列的後半部分 測試用例 功能測試 奇數偶數交替出現 全是奇數 偶數 所有偶數在奇數前 奇數在偶數前 特殊輸入 null 只有乙個數字的陣列 分析 1.維護...

劍指 Offer 第三章總結與實現

給定乙個 double 型別的浮點數 base 和 int 型別的整數 exponent。求 base 的 exponent 次方。不可使用庫函式,不用考慮大數問題。考察 的完整性,不能覺得它簡單,要盡可能想的全面。base 是 0,或者 exponent 是0 exponent 是乙個負值 快速冪...

第三章筆記

第三章預習筆記 一 高階語言和機器指令中的運算 1,按位運算 符號 按位or運算 符號 按位and運算 符號 表示按位not運算 符號 按位xor運算。實現掩碼操作 通過與給定的乙個位模式進行按位與,可以提取所需要的位,對這些位進行 置1 清0 等。2,符號 按位or運算 符號 表示and運算 符號...