中序遍历

    1. /**
    2. * Definition for a binary tree node.
    3. * struct TreeNode {
    4. * int val;
    5. * TreeNode *left;
    6. * TreeNode *right;
    7. * TreeNode() : val(0), left(nullptr), right(nullptr) {}
    8. * TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
    9. * TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
    10. * };
    11. */
    12. class Solution {
    13. public:
    14. int mind=INT_MAX;
    15. TreeNode* temp=NULL;
    16. int getMinimumDifference(TreeNode* root) {
    17. dfs(root);
    18. return mind;
    19. }
    20. void dfs(TreeNode* root){
    21. if(root==NULL){
    22. return;
    23. }
    24. dfs(root->left);
    25. if(temp!=NULL){
    26. int dif=root->val-temp->val;
    27. mind=mind<dif?mind:dif;
    28. }
    29. temp=root;
    30. dfs(root->right);
    31. }
    32. };