先序遍历创建二叉链表存储的二叉树及遍历操作
时间: 2023-04-27 15:04:09 浏览: 232
二叉树的创建与遍历操作
先序遍历创建二叉链表存储的二叉树的步骤如下:
1. 读入一个节点的值,如果该节点的值为null,返回空节点;否则,创建一个新节点,将该节点的值存储到新节点中。
2. 递归调用自身,生成左子树,并将左子树的根节点赋值给当前节点的左孩子。
3. 递归调用自身,生成右子树,并将右子树的根节点赋值给当前节点的右孩子。
4. 返回当前节点。
先序遍历二叉树的步骤如下:
1. 访问根节点。
2. 递归遍历左子树。
3. 递归遍历右子树。
以下是示例代码:
```python
class TreeNode:
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
def buildTree(preorder):
if not preorder:
return None
root_val = preorder.pop(0)
if root_val is None:
return None
root = TreeNode(root_val)
root.left = buildTree(preorder)
root.right = buildTree(preorder)
return root
def preorderTraversal(root):
if not root:
return []
res = [root.val]
res += preorderTraversal(root.left)
res += preorderTraversal(root.right)
return res
```
在上面的示例代码中,`buildTree`函数使用先序遍历的方式创建二叉树,`preorderTraversal`函数使用先序遍历的方式遍历二叉树,并返回遍历结果。
阅读全文