leetcode 二叉树分离(数据结构树如何转化为二叉树)

技术LeetCode如何把二叉搜索树转换为累加树这篇文章主要介绍了LeetCode如何把二叉搜索树转换为累加树,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下

本文主要介绍LeetCode如何将二叉查找树树转化为累积树,具有一定的参考价值。有兴趣的朋友可以参考一下。希望你看完这篇文章后有很多收获。让边肖带你去了解一下。

1.问题的简要描述

给出二叉查找树的根节点,它有不同的节点值。请将其转换为更大和树,以便每个节点的新值等于原始树中大于或等于node.val的值之和。请注意,二叉查找树满足以下约束:节点的左子树只包含键小于该节点键的节点。节点的右子树仅包含键大于该节点的键的节点。左右子树也必须是二分搜索法树。

2 .示例

LeetCode如何把二叉搜索树转换为累加树

输入:[4,1,6,0,2,5,7,null,null,3,null,null,8]输出:[30,36,21,36,35,26,15,null,null,33,null 1]示例3:输入:根=[1,0,2]输出:[3,3,2]示例4:输入:根=[3,2,4,1]输出:[7,9,4,10]提示:树中的节点数介于1和100之间每个节点的值介于0和100之间。树中的所有值都彼此不同。给定的树是二叉查找树。

3、解决思路

写出解决这个问题最基本的思路,先统计二叉树的节点数据,然后根据题目的已知条件进行计算,再进行数据赋值。

4、问题解决程序

导入Java . util . ArrayList;导入Java . util . list;公共类ConvertBSTTest { static list integer list=new ArrayList();公共静态void main(String[]args){ TreeNode t1=new TreeNode(4);TreeNode t2=新的tree node(1);TreeNode t3=新的tree node(6);TreeNode t4=新的tree node(0);TreeNode t5=新的tree node(2);TreeNode t6=新的tree node(5);TreeNode t7=新的tree node(7);TreeNode t8=新的tree node(3);TreeNode t9=新的tree node(8);t1.left=t2t1.right=t3

de>        t2.left = t4;        t2.right = t5;        t3.left = t6;        t3.right = t7;        t5.right = t8;        t7.right = t9;        TreeNode treeNode = convertBST(t1);        System.out.println("treeNode = " + treeNode);

   }
   public static TreeNode convertBST(TreeNode root) {        if (root == null) {            return null;        }        if (list.size() == 0) {            dfs(root);        }        Integer compute = compute(root.val);        root.val = compute;        if (root.left != null) {            convertBST(root.left);        }        if (root.right != null) {            convertBST(root.right);        }
       return root;
   }

   private static Integer compute(Integer val) {        int sum = 0;        for (int num : list) {            if (num > val) {                sum += num;            }        }        sum += val;        return sum;    }
   private static void dfs(TreeNode root) {        if (root == null) {            return;        }        if (root.left != null) {            dfs(root.left);        }        list.add(root.val);        if (root.right != null) {            dfs(root.right);        }    }}

5,题解程序图片版

6LeetCode如何把二叉搜索树转换为累加树

感谢你能够认真阅读完这篇文章,希望小编分享的“LeetCode如何把二叉搜索树转换为累加树”这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/147023.html

(0)

相关推荐

  • 择其善者而从之的从的意思,择其善者而从之的字的意思

    技术择其善者而从之的从的意思,择其善者而从之的字的意思孔子的“三人行择其善者而从之的从的意思,必有我师焉”这句话,受到后代知识分子的极力赞赏。他虚心向别人学习的精神十分可贵,但更可贵的是,他不仅要以善者为师,而且以不善者

    生活 2021年10月23日
  • 抖音刷粉,抖音刷粉怎么做到的?

    技术抖音刷粉,抖音刷粉怎么做到的?抖音相信大家并不陌生,抖音现在可谓是最受大家欢迎的短视频平台。可能很多抖音的朋友经常分享的视频没有点赞,可能觉得很尴尬。
    抖音怎么刷粉?抖音运营方法有哪些,抖音是一个短视频领域,它可以是

    测评 2021年11月11日
  • 眉间痣,痣,长在脸上哪些部位算是美女

    技术眉间痣,痣,长在脸上哪些部位算是美女有人认为眉间痣,长在眉心和嘴角的痣是美人痣。其实不然,长在眼睑旁边和下方肤色较淡部位的明亮之痣,才会让人增色和增运。少数痣的确能够使人更美,但并不是每个人都是美人胚子,关于“美人痣

    生活 2021年10月26日
  • 化妆技巧初学化妆,学化妆的正确方法和技巧

    技术化妆技巧初学化妆,学化妆的正确方法和技巧化妆第一部,洗脸,然后擦干,油皮简单的来个爽肤水就行,干皮护肤品全套使用化妆技巧初学化妆。凉一会让脸上的护肤品吸收吸收。接着就是隔离防晒,我一般喜欢用带防晒的隔离。用手指整个脸

    生活 2021年10月23日
  • C#数据访问层的相关知识有哪些

    技术C#数据访问层的相关知识有哪些这篇文章给大家分享的是有关C#数据访问层的相关知识有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。C#数据访问层1.查询数据库中的数据,返回一个datat

    攻略 2021年12月1日
  • SAP C4C url Mashup的跳转工作原理是什么

    技术SAP C4C url Mashup的跳转工作原理是什么这篇文章给大家介绍SAP C4C url Mashup的跳转工作原理是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。一个例子:我在Sa

    攻略 2021年12月3日