zoukankan      html  css  js  c++  java
  • Leetcode : 二叉搜索树结点最小距离

    二叉搜索树结点最小距离


    给定一个二叉搜索树的根结点 root, 返回树中任意两节点的差的最小值。

    示例:

    输入: root = [4,2,6,1,3,null,null]
    输出: 1
    解释:
    注意,root是树结点对象(TreeNode object),而不是数组。
    
    给定的树 [4,2,6,1,3,null,null] 可表示为下图:
    
            4
            /   
          2      6
         /     
        1   3  
    最小的差值是 1, 它是节点1和节点2的差值, 也是节点3和节点2的差值。
    

    注意:

    二叉树的大小范围在 2 到 100。
    二叉树总是有效的,每个节点的值都是整数,且不重复。

    二叉搜索树中序遍历就是有序的,根据这个遍历顺序的过程中,进行比较。

    Python

    # Definition for a binary tree node.
    # class TreeNode:
    #     def __init__(self, x):
    #         self.val = x
    #         self.left = None
    #         self.right = None
    
    class Solution:
        def minDiffInBST(self, root):
            """
            :type root: TreeNode
            :rtype: int
            """
            if root == None:
                return 0
            stack = []
            m = 100
            last = None
            while True:
                while root:
                    stack.append(root)
                    root = root.left
                if len(stack) == 0:
                    return m
                root = stack.pop()
                if last:
                    m = min(abs(root.val - last),m)
                    last = root.val
                else:
                    last = root.val
                root = root.right
    
  • 相关阅读:
    C/C++之文件打开方式差别
    C/C++获取文件大小
    dedecms使用
    TCP/IP概念简述
    protobuf新增message报错:类型已存在
    亚马逊MWS开发套路演示
    请求MWS报错401:Access Denied
    敏捷开发
    过滤器和拦截器的区别
    防盗链
  • 原文地址:https://www.cnblogs.com/xmxj0707/p/9698109.html
Copyright © 2011-2022 走看看