剑指Offer第26题:二叉搜索树与双向链表
题目:输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。
解题思路:二叉搜索树的中序遍历为有序序列,因此在二叉树的中序遍历时修改指针的指向即可。创建一个全局的指针用于记录先前的结点。
代码:
1 | void ConvertHelper(TreeNode* root, TreeNode* &pre) { // pre需要用引用传递 |
题目:输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。
解题思路:二叉搜索树的中序遍历为有序序列,因此在二叉树的中序遍历时修改指针的指向即可。创建一个全局的指针用于记录先前的结点。
代码:
1 | void ConvertHelper(TreeNode* root, TreeNode* &pre) { // pre需要用引用传递 |