題目一:在o(1)時間內刪除鍊錶節點如果節點是尾節點,則,從頭結點開始遍歷,遍歷到前乙個節點刪除,如果不是,則將要刪除節點的後乙個節點的值賦值給前乙個節點。給定單向鍊錶的頭指標和乙個節點指標,定義乙個函式在o(1)時間內刪除該節點。鍊錶節點定義如下:
struct listnode
void deletenode ( listnode head, listnode temp )
package offer.xzs.eightteenth;
public class demo01
public static listnode deletenode(listnode head, listnode tobedelete)
if (tobedelete.getnext() != null) else else
p.setnext(null);}}
return head;
}}
題目二:刪除鍊錶中重複的節點分兩種情況,頭節點有重複和頭節點沒有重複。在乙個排序的鍊錶中,如何刪除重複的節點?
package offer.xzs.eightteenth;
public class demo02
public static listnode deleterepeat(listnode head)
listnode cur = head.getnext();
if (head.getvalue() == cur.getvalue())
return deleterepeat(cur);
} else
}}
出鞘之劍指offer 第14題 剪繩子
給你一根長度為n的繩子,請把繩子剪成m段 m和n都是整數,n 1並且m 1 每段繩子的長度記為k 0 k 1 k m 請問k 0 k 1 k m 可能的最大乘積是多少?使用動態規劃。package offer.xzs.fourteenth public class demo01 public sta...
出鞘之劍指offer 第12題 矩陣中的路徑
設計乙個函式,判斷在乙個矩陣中是否存在一條包含某字串所有字元的路徑。路徑可以從矩陣中的任意一格開始,每一步可以在矩陣中上 下 左 右移動一格。如果一條路徑經過了矩陣的某一格,那麼該路徑不能再次進入該格仔。用回溯法,也就是相當於暴力 package offer.xzs.twelvfth public ...
出鞘之劍指offer 第19題 正規表示式匹配
實現乙個函式用來匹配 和 的正規表示式。模式中的字元 表示任意乙個字元,而 表示他前面的字元可以出現任意次 含0次 在本題中,匹配是指字串的所有字元匹配整個模式。用遞迴來做。如果掃瞄到 就有三種情況。掃瞄到 就有一種情況。package offer.xzs.nineteenth public cla...