二叉树(使用C++实现)
😲示例
二叉树在C++中的一般写法如下所示, 其中
nullptr
和NULL
都是在C++中被承认的空指针表示方法
1 |
|
🤔一些疑问解答
nullptr
和NULL
有什么区别?
NULL
和nullptr
都用于表示空指针,但它们有一些区别。
NULL
是一个宏定义,通常被定义为整数0。在早期的C++标准中,NULL
被用作空指针的表示。然而,由于整数0也可以被用于表示其他含义,例如整数类型的零值,这可能导致一些潜在的问题。因此,在C++11标准中,引入了新的关键字nullptr
来表示空指针。
nullptr
是一个关键字,专门用于表示空指针。与NULL
不同,nullptr
的类型是nullptr_t
,它是一个独立的类型,可以隐式转换[1]为任何指针类型。这样可以避免了NULL
可能引起的一些类型转换问题。使用
nullptr
可以提供更好的类型安全性,因为它只能用于指针类型,而不能用于整数类型。这样可以在编译时捕获一些潜在的错误。总结一下,
NULL
是一个宏定义,通常被定义为整数0,而nullptr
是一个关键字,用于表示空指针,并提供了更好的类型安全性。在现代的C++代码中,推荐使用nullptr
来表示空指针。
💪力扣刷题
144. 二叉树的前序遍历
1 |
|
145. 二叉树的后序遍历
1 |
|
94. 二叉树的中序遍历
1 |
|
- 例如
byte
类型的数字12
可以隐式转换为int
类型,但是int
类型的12
转换为byte
类型需要显式转换,(byte)12
,这里展示的是在高级语言中显隐式转换如何体现,高精度和低精度的转换关系,然而它在编译中一定有另一种体现方式,这里的nullptr_t
类型可以隐式转换为任何类型便是这个意思,它可以在汇编层面隐式转换为任何类型,而不是我们常规理解的在高级语言层面的高低精度转换
二叉树(使用C++实现)
http://example.com/二叉树/