我有一个随机二叉树,形式如下
12个
13,14
29, 26, 89
每个节点有两个子节点,即(12-
class Tree:
def __init__(self, data, left=None, right=None):
self.data = data
self.left = left
self.right = right
def __str_(self):
return '%s' % self.data
def makeList(tree, path =[]):
if(tree != None):
path.append(tree.data)
if tree.left:
path.append(makeList(tree.left, path))
if tree.right:
path.append(makeList(tree.left, path))
return path
树的分类
根左=树(13)
根右=树(14)
根正当左=树(26)
根左边右=树(26)
根左边左=树(29)
根正当右=树(86)
x = makeList(root)
设置此选项时:
def makeList(tree, path =[]):
路径后的空列表不会在函数执行后删除,如果您在没有路径参数的情况下第二次调用makeList,第一次调用结束时的路径列表将保留。
考虑功能:
def f(l=[]):
l.append(17)
print l
如果继续调用f(),而不使用参数l,则每次将得到另外17个参数。
[17]
[17, 17]
[17, 17, 17]
我不知道如何使用记忆递归来解决它。但我仍然会发布我的答案,因为它可能会部分解决你的问题。
def makeList(tree):
paths = []
if not (tree.left or tree.right):
return [[tree.data]]
if tree.left:
paths.extend([[tree.data] + child for child in makeList(tree.left)])
if tree.right:
paths.extend([[tree.data] + child for child in makeList(tree.right)])
return paths
我试图打印二叉树的所有路径(根到叶的路径),但没有效果。 我的策略是使用递归,基本情况是树为None或树节点为leaf return,否则,遍历树的左侧和右侧。 但我找不到同时保留左右树的方法。
Random#nextLong()文档指出,此方法不会返回所有可能的长值: 返回此随机数生成器序列中的下一个伪随机、均匀分布的long值。的一般约定是伪随机生成并返回一个long值。方法由Random类实现,就好像通过: 因为类Random使用的种子只有48位,所以该算法不会返回所有可能的长值。 例如,数字是可生成的,但数字不是,即使它们唯一的区别是一个最低有效位,并且值本身是63位长。 有一种方
问题内容: 我试图使用Java在二叉树中打印所有根到叶的路径。 在主要方法中: 但是它给出了错误的输出。 给定的树: 预期产量: [5,1,3] [5、8、6] [5、8、9] 但是输出产生了: [5,1,3] [5、1、3、8、6] [5、1、3、8、6、9] 可以找出一个… 问题答案: 用以下方法调用递归方法: 传递时会发生什么(而不是在所有方法调用中使用单个对象,这意味着,当您返回原始调用者
本文向大家介绍Java实现打印二叉树所有路径的方法,包括了Java实现打印二叉树所有路径的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Java实现打印二叉树所有路径的方法。分享给大家供大家参考,具体如下: 问题: 给一个二叉树,把所有的路径都打印出来。 比如,对于下面这个二叉树,它所有的路径为: 8 -> 3 -> 1 8 -> 2 -> 6 -> 4 8 -> 3 -> 6 ->
这是问题的链接:所有可能的完整二叉树。 给定一个整数,返回包含节点的所有可能的完整二叉树的列表。答案中每个树的每个节点都必须有。 答案的每个元素都是一个可能树的根节点。您可以按任意顺序返回最终的树列表。 完整的二叉树是一个二叉树,其中每个节点正好有或子节点。 例1: 输入: 输出: 在这个问题中,我必须返回所有可能的完整二叉树的列表,这是我的java代码的解决方案,有人能帮我在哪里我的代码是错误的
我试图搜索给定红黑树中所有根到叶的路径。特别是,我想编写一个测试,在给定rbt的情况下,该测试将断言每个路径具有相同数量的黑色节点。 我用两个全局变量尝试这样的东西: 然而,当左分支中的黑色节点右侧有红色节点时,我遇到了麻烦,因为这意味着计数比应该减少的更多。 有没有更好的方法来搜索根到叶的路径,计算特定值的频率,然后以某种方式比较计数?或者,如果给定rbt余额,是否有一种完全不同的方法来测试rb