题目简介:
给定一个二叉搜索树(Binary Search Tree),把它转换成为累加树(Greater Tree),使得每个节点的值是原来的节点值加上所有大于它的节点值之和。
例如:
1 | 输入: 原始二叉搜索树: |
思路:
一开始的想法是先将结点值都一个个保存下来,然后再遍历搜索累加,但是这样子很慢。
后来发现这是个二叉搜索树,那么可以利用反中序遍历,这样子遍历出来的元素值一定是递减的,所以定义一个sum
用来累加遍历到的元素的值即可。
代码如下:
1 | /** |
给定一个二叉搜索树(Binary Search Tree),把它转换成为累加树(Greater Tree),使得每个节点的值是原来的节点值加上所有大于它的节点值之和。
例如:
1 | 输入: 原始二叉搜索树: |
一开始的想法是先将结点值都一个个保存下来,然后再遍历搜索累加,但是这样子很慢。
后来发现这是个二叉搜索树,那么可以利用反中序遍历,这样子遍历出来的元素值一定是递减的,所以定义一个sum
用来累加遍历到的元素的值即可。
1 | /** |
jsonContent: meta: false pages: false posts: title: true date: true path: true text: false raw: false content: false slug: false updated: false comments: false link: false permalink: false excerpt: false categories: true tags: true