Convert BST to Greater Tree

来源:互联网 发布:charles游戏修改数据 编辑:程序博客网 时间:2024/06/05 14:48

题目详情:https://leetcode.com/problems/convert-bst-to-greater-tree/description/

# -*- coding:utf-8 -*-# Definition for a binary tree node.class TreeNode(object):    def __init__(self, x):        self.val = x        self.left = None        self.right = Noneclass Solution(object):    def convertBST(self, root):        """        :type root: TreeNode        :rtype: TreeNode        """        self.so_far=0        self.rightAndLeft(root)#先遍历右子树,在遍历根节点,后遍历左子树。这样遍历的结果为倒序的        return root    def rightAndLeft(self,root):        if root:            self.rightAndLeft(root.right)            #将节点中val变为self.so_far+root.val,即所有比root.val大的节点值与root.val的和            #更新self.so_far的值            root.val,self.so_far=self.so_far+root.val,self.so_far+root.val            self.rightAndLeft(root.left)
原创粉丝点击