Memory Usage: less than 99.99%
def mergeTwoLists(self, l1: ListNode, l2: ListNode) -> ListNode: cur1 = l1 cur2 = l2 cur = None head = None if cur1 == None: return cur2 elif cur2 == None: return cur1 if cur1.val <= cur2.val: head = cur1 cur = cur1 cur1 = cur1.next else: head = cur2 cur = cur2 cur2 = cur2.next while(cur1 != None or cur2 != None): # 한쪽이 끝이면 다른 쪽 값을 붙임 if cur1 == None: cur.next = cur2 return head elif cur2 == None: cur.next = cur1 return head # 작은 값을 현재 값에 붙임 if cur1.val <= cur2.val: cur.next = cur1 cur1 = cur1.next else: cur.next = cur2 cur2 = cur2.next cur = cur.next return head |
Runtime: 92ms, faster than 97.35%
class Solution: def searchGraph(self, index, graph, savedStatus): for node in graph[index]: newStatus = savedStatus + [node] if node == (len(graph)-1): self.result.append(newStatus) else: self.searchGraph(node, graph, newStatus) def allPathsSourceTarget(self, graph: List[List[int]]) -> List[List[int]]: self.result = [] self.searchGraph(0, graph, [0]) return self.result |