Inorder Successor in BST
2016-07-16 07:36
309 查看
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * 4000 TreeNode(int x) { val = x; } * } */ public class Solution { public TreeNode inorderSuccessor(TreeNode root, TreeNode p) { if (root == null) { return null; } TreeNode succ = null; TreeNode node = root; while (node != null) { if (node == p) { if (node.right == null) { return succ; } else { node = node.right; } } else if (node.val > p.val) { succ = node; node = node.left; } else { node = node.right; } } return succ; // if (root == null) { // return null; // } // TreeNode succ = null; // TreeNode node = root; // while (node != null) { // if (node.val == p.val) { // if (node.right == null) { // return succ; // } else { // node = node.right; // } // } else if (node.val > p.val) { // succ = node; // node = node.left; // } else { // node = node.right; // } // } // return succ; } // public TreeNode inorderSuccessor(TreeNode root, TreeNode p) { // if (root == null) { // return null; // } // TreeNode prevMin = null; // TreeNode node = root; // while (node != null) { // if (node.val == p.val) { // if(node.left == null) { // return prevMin; // } else { // node = node.left; // } // } else if (node.val < p.val) { // prevMin = node; // node = node.right; // } else { // node = node.left; // } // } // return prevMin; // } }
相关文章推荐
- JS获取/设置iframe内对象元素、文档的几种方法
- Cordova 生成错误 安装本地 npm 包时出错 解决方案
- 【荐】使用eval()、new Function()将JSON字符串转换为JSON对象
- 设置导航控制器内容
- 开源蓝牙ble-1_DA14580初级入门教程3_DA1458x软件基础教程
- 如何利用“南海事件”迅速吸粉
- hdu_1286找新朋友(欧拉定理)
- 今天鹏鹏会来,待会一起出去买东西。
- 开闭原则详解--七大面向对象设计原则(5)
- EasyUI基础知识
- PyQt5 pyuic
- EasyUI基础知识
- EasyUI基础知识
- 高斯公式,斯克托斯公式
- python之路 IO多路复用 线程进程初步了解
- 树莓派安装配置启动CHROME及FLASH支持
- 文件搜索器的实现(一)
- eclipse提交项目到github
- 安装cygwin Package: Unknown package pango1.0.sh exit code 1 解决办法
- iOS快速开发必备的几种类库总结