用kotlin写一段代码,实现二叉树的遍历
时间: 2024-01-28 08:03:10 浏览: 152
javascript实现二叉树遍历的代码
好的,以下是使用Kotlin实现二叉树的三种遍历方式:前序遍历、中序遍历、后序遍历的代码:
```kotlin
data class TreeNode(val value: Int, var left: TreeNode? = null, var right: TreeNode? = null)
// 前序遍历
fun preOrderTraversal(root: TreeNode?) {
if (root == null) return
print("${root.value} ")
preOrderTraversal(root.left)
preOrderTraversal(root.right)
}
// 中序遍历
fun inOrderTraversal(root: TreeNode?) {
if (root == null) return
inOrderTraversal(root.left)
print("${root.value} ")
inOrderTraversal(root.right)
}
// 后序遍历
fun postOrderTraversal(root: TreeNode?) {
if (root == null) return
postOrderTraversal(root.left)
postOrderTraversal(root.right)
print("${root.value} ")
}
```
使用方法:
```kotlin
// 构造一颗二叉树
val root = TreeNode(1).apply {
left = TreeNode(2).apply {
left = TreeNode(4)
right = TreeNode(5)
}
right = TreeNode(3).apply {
left = TreeNode(6)
right = TreeNode(7)
}
}
// 前序遍历:1 2 4 5 3 6 7
preOrderTraversal(root)
// 中序遍历:4 2 5 1 6 3 7
inOrderTraversal(root)
// 后序遍历:4 5 2 6 7 3 1
postOrderTraversal(root)
```
这段代码中,我们使用了 `data class` 定义了树节点的结构,然后实现了三种不同的遍历方式。遍历时,我们先判断当前节点是否为空,如果不为空,就按照遍历顺序打印当前节点的值,并递归遍历左右子树。
阅读全文