专栏首页架构说leetcode538. 把二叉搜索树转换为累加树

leetcode538. 把二叉搜索树转换为累加树

538. 把二叉搜索树转换为累加树

给定一个二叉搜索树(Binary Search Tree),把它转换成为累加树(Greater

Tree),使得每个节点的值是原来的节点值加上所有大于它的节点值之和。

分析:

  • 首先想到的遍历

顺序:13 5 2 然后累计13 18 20 右中左顺序 这是中序遍历的一个升级(错误理解后续遍历)

  • 遍历当前节点时候必须有个节点记录上一个节点的位置

例如:遍历节点5的时候,如何获取上个节点13

如何记录上个位置 通过参数 还是返回值

c++ code:

go

总结

c++代码翻译到go代码中出现很大误区 可以看出c++引用的优点了 既可以当作输入有可以当作输出使用在递归中发挥本有价值 在golang中参数传递方式没有引用传递比较麻烦

本文分享自微信公众号 - 架构说(JiaGouS),作者:王传义

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-05-04

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 使用虚拟节点改进的一致性哈希算法

    1 作者:@lionets 分析缺点 连接:http://my.oschina.net/lionets/blog/288066 2 作者:@糖拌咸鱼 ...

    程序员小王
  • raft一致性算法简单解释

    在分布式环境中, 一致性是指数据在多个副本之间是否能够保持一致的特性。在一致性的需求下,当一个系统在数据一致的状态下执行更新操作之后, 应该能够保证系统的数据仍...

    程序员小王
  • [LeetCode] Symmetric Tree

    1、题目名称 Symmetric Tree https://leetcode.com/problems/symmetric-tree/ 2、题目内容 Give...

    程序员小王
  • B树与B+树的区别

    我们先来看看Stack Overflow上面是怎么解释的(没有梯子的,博主已经把回答copy下来了):

    yesr
  • 二叉树的遍历:先序中序后序遍历的递归与非递归实现及层序遍历

      对于一种数据结构而言,遍历是常见操作。二叉树是一种基本的数据结构,是一种每个节点的儿子数目都不多于2的树。二叉树的节点声明如下: 1 typedef str...

    llhthinker
  • 数据结构之树-第一篇

    1、二分搜索树,数据存储的方式是一种树结构。而线性数据结构,把所有的数据排成一排的。为什么需要树结构呢,因为树结构本身是一种天然的组织结构,使用树结构非常高效。...

    别先生
  • 网络拓扑结构-网络图的凝聚性特征和R计算

    前述网络基础概述中提到,在数学中,“网络”(networks)通常被称为“图”(graphs),一个图G=(V,E)是一种包含“节点”集合V与“边”集合E的数学...

    用户7585161
  • ABAP的OPEN SQL和Hybris Commerce的Flexible Search简介

    在ABAP应用里,我们application developer用Open SQL访问database, 这些Open SQL会被Database interf...

    Jerry Wang
  • B树和B+树对比,为什么MySQL数据库索引选择使用B+树?

    B+树是B树的一个变形,非叶子节点只保存索引,不保存实际的数据,数据都保存在叶子节点中,

    ydymz
  • PHP数据结构(九) ——图的定义、存储与两种方式遍历

    PHP数据结构(九)——图的定义、存储与两种方式遍历 (原创内容,转载请注明来源,谢谢) 一、定义和术语 1、不同于线性结构和树,图是任意两个...

    用户1327360

扫码关注云+社区

领取腾讯云代金券