<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def merge_nodes(self, keep_node, kill_node):
 """ Merge two nodes in the graph. Takes two nodes and merges them together, merging their links by combining the two link lists and summing the weights of links which point to the same node. All links in the graph pointing to ``kill_node`` will be merged into ``keep_node``. Links belonging to ``kill_node`` which point to targets not in ``self.node_list`` will not be merged into ``keep_node`` Args: keep_node (Node):
 node to be kept kill_node (Node):
 node to be deleted Returns: None Example: ['One', 'Two', 'Three'] ['One', 'Two'] One 1 Two 8 """

        # Merge links from kill_node to keep_node
        for kill_link in kill_node.link_list:
            if kill_link.target in self.node_list:
                keep_node.add_link(kill_link.target, kill_link.weight)
        # Merge any links in the graph pointing to kill_node into links
        # pointing to keep_node
        for node in self.node_list:
            for link in node.link_list:
                if link.target == kill_node:
                    node.add_link(keep_node, link.weight)
                    break
        # Remove kill_node from the graph
        self.remove_node(kill_node)