嗨我正在写一个二叉树的快速算法。我的目标是在特定深度,以创建节点的列表像给定深度的Swift二叉树列表节点
func listNodeAt(_n: Int) --> [T] {
}
这里是我的树类
public class BinaryTreeNode<T:Comparable> {
//Value and children vars
public var value:T
public var leftChild:BinaryTreeNode?
public var rightChild:BinaryTreeNode?
public weak var parent:BinaryTreeNode?
//Initialization
public convenience init(value: T) {
self.init(value: value, left: nil, right: nil, parent:nil)
}
public init(value:T, left:BinaryTreeNode?, right:BinaryTreeNode?, parent:BinaryTreeNode?) {
self.value = value
self.leftChild = left
self.rightChild = right
self.parent = parent
}
}
我有建立一个辅助函数来计算节点的深度
//Depth
public func depth() -> Int {
guard var node = parent else {
return 0
}
var depth = 1
while let parent = node.parent {
depth = depth + 1
node = parent
}
return depth
}
我们如何才能实现愿望功能?任何建议都非常感谢。谢谢!
因此,使用相同的算法来查找树的深度。在while循环中使用数组总是在数组的开头插入父项。 –
谢谢你能给一点细节?我的深度func仅用于计算特定注释的深度 –
您是否想要将所有可能的节点列表列入一个阵列或多个阵列,并且可以实现此深度。 –