538. Convert BST to Greater Tree

题目来源:
 
自我感觉难度/真实难度:
 
题意:
 
分析:

自己其实想到了可以不用先转化成list,直接反向递归操作,但是写代码时依然有些混乱

 
自己的代码:
代码效率/结果:
 
优秀代码:
class Solution(object):
    def convertBST(self, root):
        """
        :type root: TreeNode
        :rtype: TreeNode
        """
        self.sum = 0
        def afterOrder(cur):
            if not cur: return
            afterOrder(cur.right)
            self.sum += cur.val
            cur.val = self.sum
            afterOrder(cur.left)
        afterOrder(root)
        return root

 

代码效率/结果:
 Runtime: 104 ms, faster than 29.25% of Python online submissions for Convert BST to Greater Tree.
自己优化后的代码:
 
反思改进策略:

1.对self的使用不是很明了。  类内函数要用self,函数内定义函数不用self

  参见博客:https://blog.csdn.net/CLHugh/article/details/75000104

2.递归使用不熟悉:  从简单的着手,其实不难

posted @ 2019-01-03 22:12  dgi  阅读(86)  评论(0编辑  收藏  举报