Skip to content

Commit d2d12bf

Browse files
committed
added problems
1 parent f46bab8 commit d2d12bf

File tree

5 files changed

+93
-0
lines changed

5 files changed

+93
-0
lines changed
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
class Solution:
2+
def addTwoNumbers(self, l1: ListNode, l2: ListNode) -> ListNode:
3+
head = ListNode(0)
4+
cur = head
5+
carry = 0
6+
7+
while any([l1, l2, carry]):
8+
v1 = l1.val if l1 else 0
9+
v2 = l2.val if l2 else 0
10+
total = v1 + v2 + carry
11+
12+
carry, res = divmod(total, 10)
13+
14+
cur.next = ListNode(res)
15+
cur = cur.next
16+
17+
l1 = l1.next if l1 else None
18+
l2 = l2.next if l2 else None
19+
20+
return head.next
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
class Solution:
2+
def oddEvenList(self, head: ListNode) -> ListNode:
3+
if not head or not head.next: return head
4+
5+
odd_head = head
6+
even_head = head.next
7+
odd = odd_head
8+
even = even_head
9+
10+
while even:
11+
if even.next:
12+
odd.next = even.next
13+
else:
14+
odd.next = even_head
15+
return odd_head
16+
odd = odd.next
17+
even.next = odd.next
18+
even = even.next
19+
20+
return odd_head
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
class Solution:
2+
def getIntersectionNode(self, headA: ListNode, headB: ListNode) -> ListNode:
3+
p1 = headA
4+
p2 = headB
5+
6+
while p1 != p2:
7+
p1 = headB if p1 is None else p1.next
8+
p2 = headA if p2 is None else p2.next
9+
10+
return p1
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
class Solution:
2+
def inorderTraversal(self, root: TreeNode) -> List[int]:
3+
res = []
4+
stack = []
5+
6+
while True:
7+
while root:
8+
stack.append(root)
9+
root = root.left
10+
if not stack:
11+
return res
12+
node = stack.pop()
13+
res.append(node.val)
14+
root = node.right
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
from collections import deque
2+
3+
class Solution:
4+
def zigzagLevelOrder(self, root: TreeNode) -> List[List[int]]:
5+
if not root: return root
6+
7+
q = deque()
8+
q.append(root)
9+
l_to_r = True
10+
res = []
11+
12+
while q:
13+
n = len(q)
14+
level = deque()
15+
for _ in range(n):
16+
node = q.popleft()
17+
if l_to_r:
18+
level.append(node.val)
19+
else:
20+
level.appendleft(node.val)
21+
22+
if node.left:
23+
q.append(node.left)
24+
if node.right:
25+
q.append(node.right)
26+
res.append(level)
27+
l_to_r = not l_to_r
28+
29+
return res

0 commit comments

Comments
 (0)