题目:输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向
设计到二叉搜索树基本上绕不过的思路就是中序遍历,这道题的思路依然是在中序遍历的基础上进行的改进
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| class Solution: def __init__(): self.listHead = None self.listtail = None def Convert(pRoot): if pRoot==None: return self.Convert(pRoot.left) if self.listHead==None: self.listHead = pRoot self.listTail = pRoot else: self.listTail.right = pRoot pRoot.left = self.listTail self.listTail = pRoot self.Convert(pRoot.right) return self.listHead
|