`

Transform a Binary Search Tree into a Greater Sum Tree

 
阅读更多

Given a Binary Search Tree (where all nodes on the left child branch are less than the node), and all nodes to the right are greater/equal to the node), transform it into a Greater Sum Tree where each node contains sum of it together with all nodes greater than that node. Example diagram is here:

enter image description here

int sum = 0;
public TreeNode replaceBST(TreeNode node) {
	if(node == null) return null;
	replaceBST(node.right);
	int tmp = node.val;
	node.val = sum;
	sum += tmp;
	replaceBST(node.left);
	return node;
}

 

如果最大的节点的值不被更新为0的话,可以这样:

int sum = 0;
boolean changed = false;
public TreeNode replaceBST(TreeNode node) {
	if(node == null) return null;
	replaceBST(node.right);
	int tmp = node.val;
	if(changed) {
		node.val = sum;
		sum += tmp;
	} else {
		changed = true;
		sum = node.val;
	}
	replaceBST(node.left);
	return node;
}

Reference:

http://codereview.stackexchange.com/questions/55966/transform-a-binary-search-tree-into-a-greater-sum-tree?rq=1

分享到:
评论

相关推荐

    Search in a Binary Search Tree.zip

    在"Search in a Binary Search Tree"这个主题中,我们主要探讨如何在二叉搜索树中高效地进行查找操作。查找操作的目标是找到树中与给定值相匹配的节点。由于二叉搜索树的特性,我们可以采用分治策略来实现快速查找:...

    python-leetcode题解之Binary Search Tree to Greater Sum Tree.py

    python python_leetcode题解之Binary Search Tree to Greater Sum Tree.py

    二叉搜索树(Binary Search Tree,BST)的实现与操作.docx

    二叉搜索树(Binary Search Tree,BST)的实现与操作.docx 二叉搜索树(Binary Search Tree,BST)的实现与操作.docx 二叉搜索树(Binary Search Tree,BST)的实现与操作.docx 二叉搜索树(Binary Search Tree,BST...

    Optimal Binary Search Tree

    ### 最优二叉查找树(Optimal Binary Search Tree) #### 概述 最优二叉查找树(Optimal Binary Search Tree, OBST)是计算机科学领域内一种高效的搜索数据结构,其设计目标是在已知各节点访问概率的情况下,构建...

    Binary Search Tree

    Binary Search Tree 利用C++實現 Binary Search Tree

    optimal binary search tree

    最小成本二分检索树optimal binary optimal binary

    陈越、何钦铭-数据结构作业16:Complete Binary Search Tree完全二叉搜索树

    A Binary Search Tree (BST) is recursively defined as a binary tree which has the following properties: The left subtree of a node contains only nodes with keys less than the node's key. The right ...

    binary search tree.rar_Binary_Search_Tree_tree

    二叉搜索树(Binary Search Tree,简称BST)是一种在计算机科学中广泛应用的数据结构,它具有以下特性:每个节点包含一个键(key)、一个关联的值、一个指向左子树的引用以及一个指向右子树的引用。在二叉搜索树中,...

    Binary Search Tree.cpp

    Binary Search Tree.cpp

    bst.rar_binary search tree_bst tree_in

    binary search tree in c

    BST.zip_binary search tree

    CpluPlus code for a Text & command based Binary Search Tree Has a menu and base function. Complete but simple

    C#,二叉搜索树(Binary Search Tree)的迭代方法与源代码

    C#,二叉搜索树(Binary Search Tree)的迭代方法与源代码 二叉搜索树(BST,Binary Search Tree)又称二叉查找树或二叉排序树。 一棵二叉搜索树是以二叉树来组织的,可以使用一个链表数据结构来表示,其中每一个...

    BST.zip_binary search tree_tree

    **二叉搜索树(Binary Search Tree,BST)详解** 二叉搜索树是一种特殊的二叉树数据结构,它的每个节点都包含一个键(key)、一个关联的值、一个指向左子节点的指针和一个指向右子节点的指针。这个数据结构的核心...

    Binary Search Tree code 二叉检索树代码

    是Binary Search Tree code 二叉检索树的代码,实现了插入,删除,检索,遍历,包括先序遍历,中序遍历,后序遍历

    simple binary search tree

    二叉搜索树(Binary Search Tree, BST)是一种特殊类型的二叉树,它的每个节点都具有以下特性: 1. 每个节点包含一个键(key)、一个关联的值、一个指向左子节点的指针和一个指向右子节点的指针。 2. 节点的键大于...

    Binary search tree C++

    二叉搜索树(Binary Search Tree,简称BST)是一种自平衡的二叉树数据结构,它在计算机科学中被广泛用于实现动态查找表。在BST中,每个节点包含一个键(key)、一个关联的值、一个指向左子节点的指针和一个指向右子...

    binary_search_tree.zip

    二叉排序树(Binary Search Tree,BST),也称为二叉查找树或有序二叉树,是一种自平衡的二叉树数据结构。它具有以下特性: 1. 每个节点包含一个键(key)、一个关联的值、一个指向左子树的指针和一个指向右子树的...

    BST.rar_binary search tree_tree

    二叉搜索树(BST,Binary Search Tree)是一种特殊的数据结构,属于树形数据结构的一种,它的每个节点都包含一个键(key)、一个关联的值、一个指向左子节点的引用和一个指向右子节点的引用。在二叉搜索树中,对于...

    折半查找 binarySearch

    A binary search finds the median element in a list, compares its value to the one you are searching for, and determines if it’s greater than, less than, or equal to the one you want. A guess that ...

    avl.rar_avl_avl tree_binary search tree_tree_二叉树

    AVL树是计算机科学中一种重要的自平衡二叉搜索树(binary search tree,BST),由G. M. Adelson-Velsky和E. M. Landis于1962年提出,因此得名AVL树。AVL树的主要特点是任何节点的两个子树的高度最大差别不超过1,这...

Global site tag (gtag.js) - Google Analytics