【python】Leetcode每日一题-二叉搜索树节点最小距离
发布日期:2021-05-11 06:28:27 浏览次数:13 分类:博客文章

本文共 2223 字,大约阅读时间需要 7 分钟。

���python���Leetcode������������-���������������������������������

������������������

��������������������������������������� root ��������� ��������������������������������������������������� ���

������1���

���������root = [4,2,6,1,3]���������1

������2���

���������root = [1,0,48,null,null,12,49]���������1

���������

��������������������������� [2, 100] ���0 <= Node.val <= 10^5

������������

  • dfs������������

  • ������

# Definition for a binary tree node.# class TreeNode:#     def __init__(self, val=0, left=None, right=None):#         self.val = val#         self.left = left#         self.right = rightclass Solution:    min_ = 100001    pre = 100001    def minDiffInBST(self, root: TreeNode) -> int:        self.dfs(root)        return self.min_            def dfs(self, root):        if root == None:            return        self.dfs(root.left)        if self.pre != 100001:            self.min_ = self.min_ if self.min_ < (root.val - self.pre) else (root.val - self.pre)        self.pre = root.val        self.dfs(root.right)
  • ������orz������������������������

    1. ������������������������������������������������������������������������������������������������������������������

    2. ������pre������������������������������������������������������pre���������������������������������

    3. ���������������������������������������������������������������������������������������������dfs

      /** * Definition for a binary tree node. * struct TreeNode { *     int val; *     TreeNode *left; *     TreeNode *right; *     TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public:    int minDiffInBST(TreeNode* root) {        int minval = INT_MAX;        TreeNode* curr = root, *prev = nullptr;        stack
      inorder; // ������������������ while(curr || !inorder.empty()) { if(curr) { inorder.push(curr); curr = curr -> left; //��� } else { curr = inorder.top(); inorder.pop(); if(prev) minval = min(minval, curr -> val - prev -> val); prev = curr; curr = curr -> right; // ��� } } return minval; }};
上一篇:【python】Leetcode每日一题-打家劫舍2
下一篇:【python】Leetcode每日一题-最大数

发表评论

最新留言

感谢大佬
[***.8.128.20]2025年04月10日 01时53分30秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章