基本数据结构的定义要自己会手写1(二叉树)

张开发
2026/4/17 19:49:33 15 分钟阅读

分享文章

基本数据结构的定义要自己会手写1(二叉树)
C版本struct TreeNode {int val;TreeNode *left;TreeNode *right;// 写三个构造函数提供多种创建节点的方式// 1、无参构造TreeNode() : val(0),left(nullptr),right(nullptr){}// 2、单参构造TreeNode(int x) : val(x),left(nullptr),right(nullptr){}// 3、全参构造TreeNode(int x,TreeNode *left,TreeNode *right) : val(x),left(left),right(right){}};(补充解释)三个构造函数各自的作用TreeNode() : val(0), left(nullptr), right(nullptr) {}无参构造函数默认构造函数创建一个节点数值默认为0左右指针为空。适用场景先创建空节点后续再给val赋值或者在某些容器如vectorTreeNode中需要默认构造。TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}单参数构造函数创建节点时指定数值x左右指针自动为空。适用场景创建叶子节点或者暂时只知道节点值还不知道左右孩子的情况。TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}全参数构造函数创建节点时同时指定数值和左右孩子指针。适用场景构建一个已经知道完整子树结构的节点比如从下往上构建二叉树时直接传入已有的左右子节点。

更多文章