zoukankan      html  css  js  c++  java
  • 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
    

     二叉查找树(Binary Search Tree),(又:二叉搜索树,二叉排序树)

    它或者是一棵空树,

    或者是具有下列性质的二叉树

                 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值;

                 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值;

                 它的左、右子树也分别为二叉排序树

      public TreeNode ConvertBST(TreeNode root)
            {
                if (root == null)
                {
                    return null;
                }
    
                int sum = 0;
                Chuck(root,ref sum);
                return root;
            }
    
            private void Chuck(TreeNode node, ref int sum)
            {
                if (node == null)
                {
                    return;
                }
    
                Chuck(node.right, ref sum);
                sum = sum + node.val;
                node.val = sum;
                Chuck(node.left, ref sum);
            }
  • 相关阅读:
    NFS-heartbeat-drbd模拟NFS高可用
    drbd
    hearbeat
    ldap
    SVN
    Nginx负载均衡
    shell-day1
    angularJS(二):作用域$scope、控制器、过滤器
    angularJS(一):表达式、指令
    nodejs、npm、 typescript、angular-cli安装
  • 原文地址:https://www.cnblogs.com/chucklu/p/11047146.html
Copyright © 2011-2022 走看看