二叉树先序遍历
时间: 2023-06-29 11:17:44 浏览: 107
二叉树的先序遍历是指从根节点开始,先输出根节点,然后先序遍历左子树,再先序遍历右子树。具体实现过程可以参考以下代码:
```
void preOrder(TreeNode* root) {
if (root == nullptr) {
return;
}
cout << root->val << " ";
preOrder(root->left);
preOrder(root->right);
}
```
其中,TreeNode为二叉树的节点类型,val为节点的值。
相关问题
二叉树先序遍历中序遍历后序遍历
二叉树的遍历方式有三种:先序遍历、中序遍历和后序遍历。其中,先序遍历是指先访问根节点,然后递归遍历左子树和右子树;中序遍历是指先递归遍历左子树,然后访问根节点,最后递归遍历右子树;后序遍历是指先递归遍历左子树和右子树,最后访问根节点。
以下是三种遍历方式的代码实现:
1. 先序遍历
```python
def pre_order(root):
if root:
print(root.val)
pre_order(root.left)
pre_order(root.right)
```
2. 中序遍历
```python
def in_order(root):
if root:
in_order(root.left)
print(root.val)
in_order(root.right)
```
3. 后序遍历
```python
def post_order(root):
if root:
post_order(root.left)
post_order(root.right)
print(root.val)
```
二叉树先序遍历java
以下是Java中二叉树先序遍历的代码示例:
```java
// 定义二叉树节点类
class TreeNode {
int val;
TreeNode left; TreeNode right;
TreeNode(int x) { val = x;}
// 先序遍历函数
public void preorderTraversal(TreeNode root) {
if (root == null) {
return;
}
System.out.print(root.val + " "); // 输出当前节点的值
preorderTraversal(root.left); // 递归遍历左子树
preorderTraversal(root.right); // 递归遍历右子树
}
```
在上述代码中,我们首先定义了一个二叉树节点类`TreeNode`,包含节点的值`val`以及左右子节点`left`和`right`。然后我们定义了一个先序遍历函数`preorderTraversal`,该函数接受一个二叉树的根节点`root`作为参数。在函数中,我们首先判断当前节点是否为空,如果为空则直接返回;否则,我们先输出当前节点的值,然后递归遍历左子树和右子树。
阅读全文