博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【Leetcode刷题篇】leetcode538 把二叉搜索树转换为累加树
阅读量:1888 次
发布时间:2019-04-26

本文共 868 字,大约阅读时间需要 2 分钟。

给出二叉 搜索 树的根节点,该树的节点值各不相同,请你将其转换为累加树(Greater Sum Tree),使每个节点 node 的新值等于原树中大于或等于 node.val 的值之和。

提醒一下,二叉搜索树满足下列约束条件:

节点的左子树仅包含键 小于 节点键的节点。
节点的右子树仅包含键 大于 节点键的节点。
左右子树也必须是二叉搜索树。

在这里插入图片描述

在这里插入图片描述

解题思路:

前序遍历:根左右
中序遍历:左根右
后序遍历:左右根

因此,而本遍历顺序为右根左。

/** * Definition for a binary tree node. * public class TreeNode { *     int val; *     TreeNode left; *     TreeNode right; *     TreeNode() {} *     TreeNode(int val) { this.val = val; } *     TreeNode(int val, TreeNode left, TreeNode right) { *         this.val = val; *         this.left = left; *         this.right = right; *     } * } */class Solution {
int sum = 0; public TreeNode convertBST(TreeNode root) {
if(root==null) {
return null; } // 反向中序遍历 右节点 根节点 左节点 convertBST(root.right); sum += root.val; root.val = sum; convertBST(root.left); return root; } }

转载地址:http://ubwdf.baihongyu.com/

你可能感兴趣的文章
linux 常用查看设备命令
查看>>
Linux内核及文件系统配置编译 - 关于内核配置
查看>>
android应用前期开发之经验总结
查看>>
Linux 下zip包的压缩与解压
查看>>
Andoird SDK目录解析
查看>>
Google Guava官方教程(中文版)
查看>>
Guava教程
查看>>
The Book of QT4 翻译:1.2 布局,对象层级和内存管理
查看>>
麒麟信安UniKylin3.3安装配置pyqt5运行环境
查看>>
linux中python3 pip快速搭建pyqt5环境
查看>>
泛型程序设计
查看>>
Java集合
查看>>
Java List集合
查看>>
Java Set集合 HashSet TreeSet
查看>>
Java Map集合
查看>>
ASCII、ISO-8859-1和GB系列编码
查看>>
Unicode及UTF-8、UTF-16、UTF-32
查看>>
UCS-2、UCS-4
查看>>
Unicode和UCS
查看>>
Java如何给ServerSocket绑定指定IP地址
查看>>