思路:
先用中序遍历把树遍历一遍
得到的结果就是从小到大排好序的序列
然后再在这个序列上,连接好左右指针就完事了
class Solution:
def __init__(self):
self.nodelist=[]
def inorder_traversal(self,root):
if(root.left!=None):
self.inorder_traversal(root.left)
self.nodelist.append(root)
if(root.right!=None):
self.inorder_traversal(root.right)
def Convert(self, pRootOfTree):
if(pRootOfTree==None):
return None
self.inorder_traversal(pRootOfTree)
#print(self.nodelist)
mylen=len(self.nodelist) #获取节点的个数
for i in range(0,mylen-1):
self.nodelist[i].right=self.nodelist[i+1]
for i in range(1,mylen)[::-1]:
self.nodelist[i].left=self.nodelist[i-1]
return self.nodelist[0]