285. Inorder Successor in BST
Posted 我的名字叫周周
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了285. Inorder Successor in BST相关的知识,希望对你有一定的参考价值。
/* * 285. Inorder Successor in BST * 2016-6-27 By Mingyang * 网上有些代码太复杂,我的最简单明了,无非就是一个dfs,用stack来做就好了,遇到p以后 * 用一个flag mark一下,接下来的话就可以下一个inorder的时候return就好了 * 注意:判断的是!stack.empty()而不是另外一种的方法 */ public TreeNode inorderSuccessor(TreeNode root, TreeNode p) { if(root==null) return null; Stack<TreeNode> stack=new Stack<TreeNode>(); TreeNode s=root; boolean findOrNot=false; while(!stack.empty()||s!=null){ if(s!=null){ stack.push(s); s=s.left; }else{ TreeNode temp=stack.pop(); if(findOrNot){ return temp; }else{ if(temp==p) findOrNot=true; } s=temp.right; } } return null; }
以上是关于285. Inorder Successor in BST的主要内容,如果未能解决你的问题,请参考以下文章
285. Inorder Successor in BST - Medium
[LC] 285. Inorder Successor in BST
LeetCode 285. Inorder Successor in BST