Skip to content

Commit 923e211

Browse files
authored
Create plus-one-linked-list.py
1 parent 95a9ee6 commit 923e211

1 file changed

Lines changed: 35 additions & 0 deletions

File tree

Python/plus-one-linked-list.py

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
# Time: O(n)
2+
# Space: O(1)
3+
4+
# Definition for singly-linked list.
5+
# class ListNode(object):
6+
# def __init__(self, x):
7+
# self.val = x
8+
# self.next = None
9+
10+
class Solution(object):
11+
def plusOne(self, head):
12+
"""
13+
:type head: ListNode
14+
:rtype: ListNode
15+
"""
16+
dummy = ListNode(0)
17+
curr = head
18+
while curr:
19+
dummy.next, curr.next, curr = curr, dummy.next, curr.next
20+
21+
curr, carry = dummy.next, 1
22+
while curr and carry:
23+
curr.val += carry
24+
carry = curr.val / 10
25+
curr.val %= 10
26+
if carry and curr.next is None:
27+
curr.next = ListNode(0)
28+
curr = curr.next
29+
30+
curr = dummy.next
31+
dummy.next = None
32+
while curr:
33+
dummy.next, curr.next, curr = curr, dummy.next, curr.next
34+
35+
return dummy.next

0 commit comments

Comments
 (0)