原题:#671_二叉树中第二小的节点
- 所有节点只会存在两个孩子节点或无孩子节点
- 若当前节点有左右孩子,则当前节点的值不大于孩子节点
public int findSecondMinimumValue(TreeNode root) {
if(root == null || (root.left == null && root.right == null)) return -1;
int left = root.left.val;
int right = root.right.val;
if(root.left.val == root.val) left = findSecondMinimumValue(root.left);
if(root.right.val == root.val) right = findSecondMinimumValue(root.right);
if(left != -1 && right != -1){
return Math.min(left, right);
}
if(left != -1){
return left;
}else{
return right;
}
}