題目描述
輸入一棵二叉搜索樹,將該二叉搜索樹轉換成一個排序的雙向鏈表。要求不能創建任何新的結點,只能調整樹中結點指針的指向。、
1 # -*- coding:utf-8 -*- 2 # class TreeNode: 3 # def __init__(self, x): 4 # self.val = x 5 # self.left = None 6 # self.right = None 7 class Solution: 8 def __init__(self): 9 self.listHead = None 10 self.listTail = None 11 def Convert(self, pRootOfTree): 12 if pRootOfTree==None: 13 return 14 #中續遍歷 15 self.Convert(pRootOfTree.left) 16 if self.listHead==None: 17 self.listHead = pRootOfTree 18 self.listTail = pRootOfTree 19 else: 20 #22行與24行主要是增加雙向連接 21 #22行指向listTail.right 22 self.listTail.right = pRootOfTree 23 #24行指回去 24 pRootOfTree.left = self.listTail 25 #移動到下一個位置 26 self.listTail = pRootOfTree 27 self.Convert(pRootOfTree.right) 28 return self.listHead