帮我写一段二叉树的代码
时间: 2024-03-01 16:31:01 浏览: 55
好吗?当然可以!这是一段 Python 代码:
class TreeNode:
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
class Solution:
def insertIntoBST(self, root: TreeNode, val: int) -> TreeNode:
if not root:
return TreeNode(val)
if val < root.val:
root.left = self.insertIntoBST(root.left, val)
else:
root.right = self.insertIntoBST(root.right, val)
return root
相关问题
帮我写一段二叉树的生成代码
答:以下是一段关于二叉树的生成代码:class Node:
def __init__(self, value):
self.left = None
self.right = None
self.value = valuedef generateTree(data):
root = Node(data[0])
for i in range(1, len(data)):
insert(root, Node(data[i]))
return root def insert(node, newNode):
if newNode.value < node.value:
if node.left is None:
node.left = newNode
else:
insert(node.left, newNode)
else:
if node.right is None:
node.right = newNode
else:
insert(node.right, newNode)
帮我写一段二叉树算法C++代码
好的,下面是一个简单的二叉树遍历算法的C++代码:
```c++
#include <iostream>
using namespace std;
// 二叉树节点结构
struct TreeNode {
int data;
TreeNode* left;
TreeNode* right;
TreeNode(int data) {
this->data = data;
left = nullptr;
right = nullptr;
}
};
// 二叉树遍历函数
void traverse(TreeNode* node) {
if (node == nullptr) {
return;
}
traverse(node->left);
traverse(node->right);
cout << node->data << " ";
}
int main() {
// 构建一个二叉树
TreeNode* root = new TreeNode(1);
root->left = new TreeNode(2);
root->right = new TreeNode(3);
root->left->left = new TreeNode(4);
root->left->right = new TreeNode(5);
// 遍历二叉树
cout << "二叉树遍历结果: ";
traverse(root);
return 0;
}
```
这个程序创建了一个二叉树,并使用递归函数`traverse()`遍历二叉树。这里使用的是后序遍历算法,即先遍历左子树,再遍历右子树,最后访问根节点。
阅读全文