题目简介:
给定一个二叉搜索树(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