二叉树访问根节点的代码
时间: 2023-11-19 19:05:01 浏览: 46
二叉树访问根节点的代码取决于具体的实现方式。在一般的二叉树实现中,可以通过一个指针指向根节点,然后访问该指针的数据域来获取根节点的值。以下是一个 C++ 的示例代码:
```cpp
struct TreeNode {
int val;
TreeNode *left;
TreeNode *right;
TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
};
// 访问二叉树的根节点
int main() {
// 创建一个二叉树
TreeNode* root = new TreeNode(1);
root->left = new TreeNode(2);
root->right = new TreeNode(3);
// 访问根节点的值
int val = root->val;
std::cout << "The value of root node is " << val << std::endl;
return 0;
}
```
相关问题
二叉树的根节点返回他节点的前序遍历
前序遍历指的是先访问根节点,再访问左子树,最后访问右子树的遍历方式。因此,二叉树的根节点返回他节点的前序遍历可以通过递归实现,具体代码如下:
```
def preorderTraversal(root):
if not root:
return []
res = []
res.append(root.val)
res += self.preorderTraversal(root.left)
res += self.preorderTraversal(root.right)
return res
```
其中,`root` 表示二叉树的根节点。如果根节点为空,则返回一个空列表。否则,先将根节点的值添加到结果列表中,然后递归访问左子树和右子树,将结果依次添加到结果列表中,并最终返回结果列表。
给你二叉树的根节点 root ,返回它节点值的先序遍历,用C语言写出完整代码来,并且有思路说明和相关注释
思路说明:
先序遍历二叉树的顺序是先访问根节点,然后是左子树,最后是右子树。因此,我们可以采用递归的方式来实现先序遍历。
具体实现时,我们先访问根节点,并将其值存入结果数组中,然后递归遍历左子树和右子树。
代码实现:
```c
/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* struct TreeNode *left;
* struct TreeNode *right;
* };
*/
/**
* Note: The returned array must be malloced, assume caller calls free().
*/
void preorderTraversalHelper(struct TreeNode* root, int* returnSize, int* result) {
if (!root) {
return;
}
result[*returnSize] = root->val; // 访问根节点,并将其值存入结果数组中
(*returnSize)++;
preorderTraversalHelper(root->left, returnSize, result); // 递归遍历左子树
preorderTraversalHelper(root->right, returnSize, result); // 递归遍历右子树
}
int* preorderTraversal(struct TreeNode* root, int* returnSize) {
int* result = (int*)malloc(sizeof(int) * 100); // 初始化结果数组
*returnSize = 0;
preorderTraversalHelper(root, returnSize, result); // 递归遍历二叉树
return result;
}
```
注释说明:
- `preorderTraversalHelper` 函数是先序遍历的辅助函数,用于递归遍历二叉树。
- `result` 数组是存储遍历结果的数组,`returnSize` 是遍历结果的长度。
- 在 `preorderTraversalHelper` 函数中,先访问根节点并将其值存入结果数组中,然后递归遍历左子树和右子树。
- `preorderTraversal` 函数是主函数,用于初始化结果数组并调用 `preorderTraversalHelper` 函数遍历二叉树。
- 最后返回结果数组即可。
相关推荐
![java](https://img-home.csdnimg.cn/images/20210720083646.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![java](https://img-home.csdnimg.cn/images/20210720083646.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)