您的位置:首页 > Web前端 > Node.js

leetcode 783. Minimum Distance Between BST Nodes ---中序遍历

2018-02-15 21:43 417 查看
过年晚上无聊,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];


  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: