用乙個 非空 單鏈表來表示乙個非負整數,然後將這個整數加一。
你可以假設這個整數除了 0 本身,沒有任何前導的 0。
這個整數的各個數字按照 高位在鍊錶頭部、低位在鍊錶尾部 的順序排列。
示例:輸入: [1,2,3]
輸出: [1,2,4]
解法1:
publicview codestatic
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;
}
解法2:
思路:用快指標fast,遍歷鍊錶
fast.val != 9,慢指標移動到當前快指標處
fast.val = 9,慢指標原地不動
遍歷結束,慢指標的值加一,慢指標後續所有節點值設定為0,打完收工!
publicview codelistnode plusone(listnode head)
fast =fast.next;
}//3.末位加1
slow.val += 1;
listnode cur =slow.next;
while (cur != null
)
return slow.next == head ?slow : head;
}
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 不開闢新記憶體,採...