[ Web Proxy ]
URL:
Viewing: https://raw.githubusercontent.com/feixiangcode/algorithm/master/Week_02/id_16/LeetCode_671_16.java [Back]  [Original]

/**[][]
 2  0 
 -1 
 1:
: 
    2
   / \
  2   5
     / \
    5   7
: 5
:  2  5 

 2:
: 
    2
   / \
  2   2
: -1
:  2, 
*/

/*
1








*/
/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode(int x) { val = x; }
 * }
 */
class Solution {
    public int findSecondMinimumValue(TreeNode root) {
        if (root == null || root.left == null) return -1;
        int secondMin;
        int leftMin;
        int rightMin;
        
        //
        if(root.val == root.left.val && root.val == root.right.val){
            leftMin = findSecondMinimumValue(root.left); 
            rightMin = findSecondMinimumValue(root.right);
        }else if(root.val == root.left.val){
            leftMin = findSecondMinimumValue(root.left); 
            rightMin = root.right.val;
        }else if(root.val == root.right.val){
            leftMin = root.left.val; 
            rightMin = findSecondMinimumValue(root.right);
        }else{
            leftMin = root.left.val; 
            rightMin = root.right.val;
        }
        
        //
        if(leftMin == -1 && rightMin == -1){
            return -1;
        }else if(leftMin == -1){
            return rightMin;
        }else if(rightMin == -1){
            return leftMin;
        }else{
            return leftMin < rightMin ? leftMin : rightMin;
        }
        
    }
}

Web Proxy Viewer  |  New URL  |  Original Page