二叉搜索树的定义是,根节点的左子树的每一个节点都比它小,右子树的每一个节点都比它大。有个题目是输入一个二叉搜索树,要求把它转换成一个排序的双向链表。我用C++来写,稍后补上代码。这里先要记住定义。因为题目要求不创建新的节点,直接调整树的指针。我先把这个树节点的结构放这里一下。
struct TreeNode {
int val;
struct TreeNode *left;
struct TreeNode *right;
TreeNode(int x) :
val(x), left(NULL), right(NULL) {
}
};
看过我之前博客的同学应该知道,C++ Primer里讲了,struct和class的区别。struct默认对象是public的,然后class默认是private的。如果想要成员都是public的情况,我们用struct。好的就先到这里。