給單鏈表加1

2022-03-23 16:13:30 字數 966 閱讀 6915

用乙個 非空 單鏈表來表示乙個非負整數,然後將這個整數加一。

你可以假設這個整數除了 0 本身,沒有任何前導的 0。

這個整數的各個數字按照 高位在鍊錶頭部、低位在鍊錶尾部 的順序排列。

示例:輸入: [1,2,3]

輸出: [1,2,4]

解法1:

public

static

listnode plusone(listnode head)

else

/*儲存最後乙個節點

*/if (itr.next == null

)

/*節點向後移動乙個

*/itr =itr.next;

}if (add > 0)

/*再次翻轉

*/return

reverse(reverse);

} public

static

listnode reverse(listnode head)

return

pre;

}

view code

解法2:

思路:用快指標fast,遍歷鍊錶

fast.val != 9,慢指標移動到當前快指標處

fast.val = 9,慢指標原地不動

遍歷結束,慢指標的值加一,慢指標後續所有節點值設定為0,打完收工!

public

listnode plusone(listnode head)

fast =fast.next;

}//3.末位加1

slow.val += 1;

listnode cur =slow.next;

while (cur != null

)

return slow.next == head ?slow : head;

}

view code

Leetcode 369 給單鏈表加一

用乙個 非空 單鏈表來表示乙個非負整數,然後將這個整數加一。你可以假設這個整數除了 0 本身,沒有任何前導的 0。這個整數的各個數字按照 高位在鍊錶頭部 低位在鍊錶尾部 的順序排列。示例 輸入 1,2,3 輸出 1,2,4 這是一道linked list題,有幾種情況需要考慮,第一種情況正常,末尾不...

力扣 369 給單鏈表加一

用乙個 非空 單鏈表來表示乙個非負整數,然後將這個整數加一。你可以假設這個整數除了 0 本身,沒有任何前導的 0。這個整數的各個數字按照 高位在鍊錶頭部 低位在鍊錶尾部 的順序排列。示例 輸入 1,2,3 輸出 1,2,4 反轉再反轉 definition for singly linked lis...

1,單鏈表反轉

題目 顧名思義,就是反轉乙個單鏈表。思路1 重新開闢記憶體,簡歷乙個新鍊錶,然後從後面往前面複製。由於單鏈表無法很容易得到當前節點前面的節點,所以,複製每乙個節點都得從前往後找到該節點,單個節點複製的時間複雜度為o n 整個複雜度則為o n 2 空間複雜度為o n 不可取。思路2 不開闢新記憶體,採...