leetcode 783. Minimum Distance Between BST Nodes ---中序遍歷
阿新 • • 發佈:2018-02-15
lee python etc 記錄 imu solution true val eno
過年晚上無聊,233333333
題解:
BST樹的中序遍歷是有序的,遍歷過程中,記錄前一個值,然後和當前值比較,來更新最小的minimum distance
註意python參數傳遞時候,像list這些object是傳引用,單獨int的數是傳值的
void getans(TreeNode* root,int &pre,int &ans) { if(root==NULL) return; getans(root->left,pre,ans); if(pre!=INT_MAX) ans=min(ans,abs(pre-root->val)); pre=root->val; getans(root->right,pre,ans); } int minDiffInBST(TreeNode* root) { int ans=INT_MAX,pre=INT_MAX; getans(root,pre,ans); return ans; }
import sys class Solution(object): def getans(self,root,pre,ans): if root==None: return ; self.getans(root.left,pre,ans); if pre[0]!=sys.maxint: ans[0]=min(ans[0],abs(pre[0]-root.val)); pre[0]=root.val; self.getans(root.right,pre,ans); def minDiffInBST(self,root): """ :type root: TreeNode :rtype: int """ ans=[sys.maxint] pre=[sys.maxint] self.getans(root,pre,ans) return ans[0];
leetcode 783. Minimum Distance Between BST Nodes ---中序遍歷