Add to List 538. Convert BST to Greater Tree

Posted nullptr

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Add to List 538. Convert BST to Greater Tree相关的知识,希望对你有一定的参考价值。

Given a Binary Search Tree (BST), convert it to a Greater Tree such that every key of the original BST is changed to the original key plus sum of all keys greater than the original key in BST.

Example:

Input: The root of a Binary Search Tree like this:
              5
            /              2     13

Output: The root of a Greater Tree like this:
             18
            /             20     13

思路:中序遍历;然后关键点在于用了一个全局变量;
 1 /**
 2  * Definition for a binary tree node.
 3  * public class TreeNode {
 4  *     int val;
 5  *     TreeNode left;
 6  *     TreeNode right;
 7  *     TreeNode(int x) { val = x; }
 8  * }
 9  */
10 class Solution{
11     private int sum = 0;
12     public TreeNode convertBST(TreeNode root) {
13        helper(root);
14        return root;      
15     }        
16     public void helper(TreeNode root){
17         if (root!=null){
18             helper(root.right);
19             root.val+=sum;
20             sum = root.val;
21             helper(root.left);
22         }
23     }
24 }

 

以上是关于Add to List 538. Convert BST to Greater Tree的主要内容,如果未能解决你的问题,请参考以下文章

538. Convert BST to Greater Tree

538. Convert BST to Greater Tree

538. Convert BST to Greater Tree

538. Convert BST to Greater Tree

538. Convert BST to Greater Tree

Leetcode 538. Convert BST to Greater Tree