问题描述
输入一颗二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向
思路分析
由于是二叉排序树,其左子树结点值小于根结点,右子树大于根节点,可以利用中序遍历,即先左孩子递归,找到树中最小的节点,然后作为头结点,然后遍历到该左子树最后一个结点,在其后继追加根结点,同样,遍历右子树,得到右子树中的第一个结点,然后将根结点追加到其前继结点即可
码上有戏
|
|
输入一颗二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向
由于是二叉排序树,其左子树结点值小于根结点,右子树大于根节点,可以利用中序遍历,即先左孩子递归,找到树中最小的节点,然后作为头结点,然后遍历到该左子树最后一个结点,在其后继追加根结点,同样,遍历右子树,得到右子树中的第一个结点,然后将根结点追加到其前继结点即可
|
|
快乐源于分享,总结溢于提高
热评文章