利用python语言的引用特性。
# Definition for a binary tree node.
# class TreeNode(object):
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution(object):
def bstToGst(self, root):
"""
:type root: TreeNode
:rtype: TreeNode
"""
sort = []
def inorder(node):
if(node):
inorder(node.left)
sort.append(node) #利用了python中引用的原理将所有元素的引用保存在一个单链表中这样就祛除了树结构的对元素读取的限制
inorder(node.right)
inorder(root)
print(sort)
for i in range(0,len(sort)):#每一个位置的值都是后面所有元素的值之和
for j in range(i+1,len(sort)):
sort[i].val += sort[j].val
return root