class Solution {
public:
  
    int search(TreeNode* node){
        if(!node)
            return NULL;
        
        int temp=1;
        if(!node->left&&!node->right){//叶子节点
            return temp;
        }
        //特殊情况,即一边子树全空
        if(!node->left)
            return search(node->right)+1;
        else if(!node->right)
            return search(node->left)+1;
        
        return min(temp+search(node->left),temp+search(node->right));
    }
    int run(TreeNode* root) {
        // write code here        
        int res=search(root);
        return res;
    }
};