285. Inorder Successor in BST
来源:互联网 发布:仿手机淘宝 html5 编辑:程序博客网 时间:2024/05/02 04:43
Given a binary search tree and a node in it, find the in-order successor of that node in the BST.
Note: If the given node has no in-order successor in the tree, return null
.
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */public class Solution { public TreeNode inorderSuccessor(TreeNode root, TreeNode p) { Stack<TreeNode> stack = new Stack<TreeNode>(); TreeNode res = null; TreeNode prev = null; while (root != null || !stack.isEmpty()) { while (root != null) { stack.push(root); root = root.left; } root = stack.pop(); if (prev != null && prev == p) { res = root; break; } prev = root; root = root.right; } return res; }}第二种方法根据二叉搜索树的性质解题。代码如下:
Successor
public TreeNode successor(TreeNode root, TreeNode p) { if (root == null) return null; if (root.val <= p.val) { return successor(root.right, p); } else { TreeNode left = successor(root.left, p); return (left != null) ? left : root; }}
Predecessor
public TreeNode predecessor(TreeNode root, TreeNode p) { if (root == null) return null; if (root.val >= p.val) { return predecessor(root.left, p); } else { TreeNode right = predecessor(root.right, p); return (right != null) ? right : root; }}
阅读全文
0 0
- 285. Inorder Successor in BST
- 285. Inorder Successor in BST
- Inorder Successor in BST
- Inorder Successor in BST
- Inorder Successor in BST
- Inorder Successor in BST
- Inorder Successor in BST
- Leetcode - 285.Inorder Successor in BST
- LeetCode 285. Inorder Successor in BST
- Leetcode 285. Inorder Successor in BST
- LeetCode 285. Inorder Successor in BST
- [刷题]Inorder Successor in BST
- **LeetCode-Inorder Successor in BST
- [LeetCode285]Inorder Successor in BST
- [leetcode]Inorder Successor in BST
- leetcode Inorder Successor in BST
- [LeetCode]Inorder Successor in BST
- [leetcode] 285. Inorder Successor in BST 解题报告
- 编译过程,make,makefile,cmake,qmake,cmakelist总结
- 制作文件系统
- 解决问题:zipimport.ZipImportError: can't decompress data; zlib not available
- Android Binder学习(二)之ServiceManager进程-我想成为管理员
- 读书笔记-大型网站系统与Java中间件5
- 285. Inorder Successor in BST
- [一天几个linux命令] lsattr
- QT的元对象机制
- 属性操作-模拟短信发送1(替换短信内容)
- Eclipse使用GIT进行pull时候的错误 : The current branch is not configured for pull
- 读《JAVA并发实践》笔记---第三章(共享对象)
- int和Integer区别
- 桥接模式(Bridge Pattern)-结构型模式
- 半小时颠覆你对Java单例的认知?