iT邦幫忙

2024 iThome 鐵人賽

0
佛心分享-刷題不只是刷題

刷經典 LeetCode 題目系列 第 78

經典LeetCode 530. Minimum Absolute Difference in BST

  • 分享至 

  • xImage
  •  

給定一棵二元搜尋樹,請找出任意兩個節點之間的最小絕對差值。
這道題的特點是利用 BST 的性質:中序遍歷 的結果會是一個遞增的序列。因此,最小差值一定出現在相鄰節點之間。

實作:

class Solution {
public:
    int getMinimumDifference(TreeNode* root) {
        int minDiff = INT_MAX;
        int prev = -1;
        inorderTraversal(root, prev, minDiff);
        return minDiff;
    }

private:
    void inorderTraversal(TreeNode* node, int& prev, int& minDiff) {
        if (node == nullptr) return;

        inorderTraversal(node->left, prev, minDiff);

        if (prev != -1) {
            minDiff = std::min(minDiff, node->val - prev);
        }
        prev = node->val;

        inorderTraversal(node->right, prev, minDiff);
    }
};

參考:
#530. Minimum Absolute Difference in BST


上一篇
經典LeetCode 222. Count Complete Tree Nodes
下一篇
經典LeetCode 35. Search Insert Position
系列文
刷經典 LeetCode 題目80
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言