Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Node(object):
- def __init__(self, data=None):
- self.data = data
- self.next = None
- def __str__(self):
- res = str(self.data)
- current = self
- while current.next is not None:
- current = current.next
- res = f"{res} -> {current.data}"
- return res + " -> None"
- def add_new_node(current, next_node):
- new_node = Node(next_node.data)
- current.next = new_node
- current = new_node
- next_node = next_node.next
- return current, next_node
- def sorted_merge(first, second):
- start = Node(-1)
- current = start
- if not first and not second:
- return None
- elif not first:
- return second
- elif not second:
- return first
- while first or second:
- if first and not second:
- current, first = add_new_node(current, first)
- elif second and not first:
- current, second = add_new_node(current, second)
- else:
- if first.data >= second.data:
- current, second = add_new_node(current, second)
- else:
- current, first = add_new_node(current, first)
- return start.next
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement