BinarySearchTreeToGreatSumTree(

2019-12-31  本文已影响0人  房房1524

题目介绍(leetcode 1038)

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

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

思路

tree.png

解决方案

暴力法

改进法

具体实现

public static class TreeNode {
        int val;
        TreeNode left;
        TreeNode right;

        TreeNode(int x) {
            val = x;
        }
    }

    public static TreeNode bstToGst(TreeNode root) {
        inOrder(root);
        int sum = 0;
        for (TreeNode node : list) {
            sum += node.val;
            node.val = sum;
        }
        return root;
    }
    static ArrayList<TreeNode> list = new ArrayList<>();

    private static void inOrder(TreeNode root) {
        if (root == null) {
            return;
        }
        inOrder(root.right);
        list.add(root);
        inOrder(root.left);
    }

上一篇 下一篇

猜你喜欢

热点阅读