劍指offer-二叉搜索樹與雙向鏈表-python


題目描述

輸入一棵二叉搜索樹,將該二叉搜索樹轉換成一個排序的雙向鏈表。要求不能創建任何新的結點,只能調整樹中結點指針的指向。、
 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

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM