Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 实际案例中的输入?您是否获得根节点的实例?或者您是否负责从更基本的字符串输入创建节点实例?否。只提供根实例。可以将其更改为完整的二叉树。二叉树与图像中提供的相同。这就是输入。创建相同的,然后用户输入将像级别和节点一样提供。这两个节点是由它们的值给出的,而不_Python_Algorithm_Data Structures_Tree_Time Complexity - Fatal编程技术网

Python 实际案例中的输入?您是否获得根节点的实例?或者您是否负责从更基本的字符串输入创建节点实例?否。只提供根实例。可以将其更改为完整的二叉树。二叉树与图像中提供的相同。这就是输入。创建相同的,然后用户输入将像级别和节点一样提供。这两个节点是由它们的值给出的,而不

Python 实际案例中的输入?您是否获得根节点的实例?或者您是否负责从更基本的字符串输入创建节点实例?否。只提供根实例。可以将其更改为完整的二叉树。二叉树与图像中提供的相同。这就是输入。创建相同的,然后用户输入将像级别和节点一样提供。这两个节点是由它们的值给出的,而不,python,algorithm,data-structures,tree,time-complexity,Python,Algorithm,Data Structures,Tree,Time Complexity,实际案例中的输入?您是否获得根节点的实例?或者您是否负责从更基本的字符串输入创建节点实例?否。只提供根实例。可以将其更改为完整的二叉树。二叉树与图像中提供的相同。这就是输入。创建相同的,然后用户输入将像级别和节点一样提供。这两个节点是由它们的值给出的,而不是由它们的节点实例给出的,对吗?为什么输入需要提供级别?无论如何,您都需要验证它们是否在同一级别上,那么为什么要问呢?我们当然可以假设值在树中是唯一的。这是解决此问题的最短方法。这是哈夫曼编码方法吗@这确实与哈夫曼编码的工作原理有一些相似之处。


实际案例中的输入?您是否获得根节点的实例?或者您是否负责从更基本的字符串输入创建节点实例?否。只提供根实例。可以将其更改为完整的二叉树。二叉树与图像中提供的相同。这就是输入。创建相同的,然后用户输入将像级别和节点一样提供。这两个节点是由它们的值给出的,而不是由它们的节点实例给出的,对吗?为什么输入需要提供级别?无论如何,您都需要验证它们是否在同一级别上,那么为什么要问呢?我们当然可以假设值在树中是唯一的。这是解决此问题的最短方法。这是哈夫曼编码方法吗@这确实与哈夫曼编码的工作原理有一些相似之处。
class Node:
    def __init__(self, data, left=None, right=None):
        self.data = data
        self.left = left
        self.right = right

def dfs(root, d={}, path=""):
    if root:
        d[root.data] = path
        dfs(root.left, d, path+"0")
        dfs(root.right, d, path+"1")
    return d

root = Node(5)
root.left = Node(2)
root.right = Node(3)
root.left.left = Node(7)
root.left.left.left = Node(9)
root.right.right = Node(1)
root.right.right.right = Node(6)
root.right.right.left = Node(4)

# create a dictionary of <nodevalue, path>
d = dfs(root)

val1, val2 = map(int, input("Enter two nodes separated with space: ").split())

# convert the numbers to the corresponding paths:
node1 = d.get(val1, None)
node2 = d.get(val2, None)

# check whether these nodes actually exist
if node1 is None or node2 is None:
    print("At least one value is invalid or not found")
    exit()

# If the paths have different lengths, the nodes are not on the same level
if len(node1) != len(node2):
    print("Nodes are not on the same level")
    exit()

# Use the magic of binary numbers:
dist = abs(int(node1, 2) - int(node2, 2))
print(dist)