538.把二叉搜索樹轉換成累加樹

題目:
在這裏插入圖片描述
題解:
思路:二叉搜索樹的反向中序遍歷。
代碼:

var convertBST = function (root) {
    var start = 0;//初始設爲0
    var arr = [];
    var p = root;

    while (p || arr.length) {
        while (p) {
            arr.push(p)//將右子樹的值存儲
            p = p.right//遍歷右子樹的右子樹
        }

        p = arr.pop(p)//進行迭代累加
        p.val += start;
        start = p.val;
        p = p.left//右子樹遍歷完畢進行左子樹遍歷
    }
    return root
};

ps:第二天

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章