285. 二叉搜索树中的中序后继:
题目链接 :285. 二叉搜索树中的中序后继
题目:
给定一棵二叉搜索树和其中的一个节点 p ,找到该节点在树中的中序后继。如果节点没有中序后继,请返回 null 。
节点 p 的后继是值比 p.val 大的节点中键值最小的节点,即按中序遍历的顺序节点 p 的下一个节点。
思路:
1、DFS
(1)从根节点开始遍历
(2)分别在左子树和右子树进行搜索
(3)找到第一个大于节点元素的节点
AC代码:
/*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode(int x) { val = x; }* }*/
class Solution {public TreeNode inorderSuccessor(TreeNode root, TreeNode p) {TreeNode big=null;while(root!=null){if(root.val>p.val){big=root;root=root.left;}else{root=root.right;}} return big;}
}