zoukankan      html  css  js  c++  java
  • [Swift]LeetCode285. 二叉搜索树中的中序后继节点 $ Inorder Successor in BST

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
    ➤微信公众号:山青咏芝(shanqingyongzhi)
    ➤博客园地址:山青咏芝(https://www.cnblogs.com/strengthen/
    ➤GitHub地址:https://github.com/strengthen/LeetCode
    ➤原文地址: https://www.cnblogs.com/strengthen/p/10686067.html 
    ➤如果链接不是山青咏芝的博客园地址,则可能是爬取作者的文章。
    ➤原文已修改更新!强烈建议点击原文地址阅读!支持作者!支持原创!
    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★

    Given a binary search tree and a node in it, find the in-order successor of that node in the BST.

    The successor of a node p is the node with the smallest key greater than p.val.

    Example 1:

    Input: root = [2,1,3], p = 1
    Output: 2
    Explanation: 1's in-order successor node is 2. Note that both p and the return value is of TreeNode type.
    

    Example 2:

    Input: root = [5,3,6,2,4,null,null,1], p = 6
    Output: null
    Explanation: There is no in-order successor of the current node, so the answer is null.
    

    Note:

    1. If the given node has no in-order successor in the tree, return null.
    2. It's guaranteed that the values of the tree are unique.

    给定一个二进制搜索树及其节点,在BST中查找该节点的顺序继承者。

     节点p的后续节点是键最小大于p.val的节点。

    例 1:

    输入: root = [2,1,3], p = 1
    输出: 2
    说明:1的顺序继承节点为2。请注意,p和返回值都是treenode类型。
    

    例  2:

    输入: root = [5,3,6,2,4,null,null,1], p = 6
    输出: null
    说明:当前节点没有按顺序的后续节点,因此答案为空。

    注:

    1. 如果给定的节点在树中没有顺序继承者,则返回空。
    2. 它保证了树的值是唯一的。

    Solution:

     1 public class TreeNode {
     2     public var val: Int
     3     public var left: TreeNode?
     4     public var right: TreeNode?
     5     public init(_ val: Int) {
     6         self.val = val
     7         self.left = nil
     8         self.right = nil
     9     }
    10 }
    11 
    12 class Solution {
    13     func inorderSuccessor(_ root: TreeNode?,_ p: TreeNode?) -> TreeNode? {
    14         var root = root
    15         var res:TreeNode? = nil
    16         while(root != nil)
    17         {
    18             if root!.val > p!.val
    19             {
    20                 res = root
    21                 root = root?.left
    22             }
    23             else
    24             {
    25                 root = root?.right
    26             }
    27         }
    28         return res
    29     }
    30 }
  • 相关阅读:
    [转]修改远程桌面端口
    [转]3个著名加密算法(MD5、RSA、DES)的解析
    [转]常见HTTP状态(如200,304,404,503)
    用 SqlConnectionStringBuilder 来写连接字符串,向连接字符串添加设置
    windows 设置ipsec防火墙
    网络带宽单位换算
    Linux 检查端口gps命令
    设置Linux防火墙
    windows 服务器同步互联网时间
    windows 路由转发
  • 原文地址:https://www.cnblogs.com/strengthen/p/10686067.html
Copyright © 2011-2022 走看看