一次過 Lintcode 904 加一鍊錶

2021-08-31 06:47:40 字數 981 閱讀 7413

給定乙個非負整數,這個整數表示為乙個非空的單鏈表,每個節點表示這個整數的一位。返回這個整數加一。

除了0本身,所有數字在最高位前都沒有0。

列表的頭節點存的是這個整數的最高位。

給出鍊錶1 -> 2 -> 3 -> null,返回1 -> 2 -> 4 -> null

因為可能頭節點會變化,所以設定dummy結點,特別地,將dummy.val = 1,因為當9,99,999的時候+1,均會多出乙個節點1。所以可以利用這個dummy節點可能當作這個節點。

基本思想是,設定tail和node兩個節點,分別指向尾部和尾部前乙個節點,依次迴圈向前遍歷加一,最後特別考慮頭節點進製增加節點的情況。

/**

* definition for listnode

* public class listnode

* }*/public class solution

//考慮最後頭節點前新增1的情況

if(cnt != 0)

return dummy;

else

return dummy.next;

}}

二刷:先將鍊錶翻轉,然後按位加一,最後再將鍊錶翻轉即可。

/**

* definition for listnode

* public class listnode

* }*/public class solution

//若最高位有進製則再插入乙個節點

if(cnt != 0)

pre.next = new listnode(cnt);

return reverse(node);

}private listnode reverse(listnode head)

return pre;

}}

兩次過 Lintcode 407 加一

給定乙個非負數,表示乙個數字陣列,在該數的基礎上 1,返回乙個新的陣列。該數字按照數字高低進行排列,最高位的數在列表的最前面。給定 1,2,3 表示 123,返回 1,2,4 給定 9,9,9 表示 999,返回 1,0,0,0 一開始想到將陣列元素轉化為數字再加一,最後轉換到陣列,實現太複雜,而且...

一次過 Lintcode 488 快樂數

寫乙個演算法來判斷乙個數是不是 快樂數 乙個數是不是快樂是這麼定義的 對於乙個正整數,每一次將該數替換為他每個位置上的數字的平方和,然後重複這個過程直到這個數變為1,或是無限迴圈但始終變不到1。如果可以變為1,那麼這個數就是快樂數。19 就是乙個快樂數。1 2 9 2 82 8 2 2 2 68 6...

一次過 Lintcode 496 玩具工廠

工廠模式是一種常見的設計模式。請實現乙個玩具工廠toyfactory用來產生不同的玩具類。可以假設只有貓和狗兩種玩具。toyfactory tf toyfactory toy toy tf.gettoy dog toy.talk wow toy tf.gettoy cat toy.talk meow...