leetcode - 두 갈래 나무의 가장 짧은 경로를 구하는 문제

1303 단어
이 종류의 문제는 나무의 두루 다니는 문제에 속한다

제목


Given a binary tree, find its minimum depth.
The minimum depth is the number of nodes along the shortest path from the root node down to the nearest leaf node.
#include 

//  Definition for binary tree
struct TreeNode {
    int val;
    TreeNode *left;
    TreeNode *right;
    TreeNode(int x) : val(x), left(NULL), right(NULL) {}
};

class Solution {
public:
    int minDepth(TreeNode *root) {
        if(!root){
            return 0;
        }
        int k = GetLength(root, 0);
        return k;
    }
    int GetLength(TreeNode *p, int curLen){
 

        int minLeft = -1;
        int minRight = -1;
        if(p->left){
            minLeft = GetLength(p->left, curLen + 1);
        }
        if(p->right){
            minRight = GetLength(p->right, curLen + 1);
        }
        // 
        if(minLeft == -1 && minRight == -1){
            return curLen + 1;
        }
        // 
        if(minLeft == -1){
            return minRight;
        }
        // 
        if(minRight == -1){
            return minLeft;
        }
        // ,  
        if(minLeft > minRight){
            return minRight;
        }
        return minLeft;
    }
};

int main(){
    return 0;
}

좋은 웹페이지 즐겨찾기