leetcode 543. 두 갈래 나무의 직경 easy

984 단어 leetcode나무.

leetcode 543. 두 갈래 나무의 직경 easy


제목 설명:


두 갈래 나무를 정하려면 직경의 길이를 계산해야 한다.두 갈래 나무의 지름 길이는 두 개의 결점 경로 길이 중 최대값입니다.이 경로는 루트 끝점을 통과할 수 있습니다.
예: 두 갈래 트리 지정하기
1/\2 3/\4 5는 3을 반환합니다. 길이는 경로 [4, 2, 1, 3] 또는 [5, 2, 1, 3]입니다.
참고: 두 결점 사이의 경로 길이는 둘 사이의 모서리 수로 표시됩니다.

문제 해결 방법:


leetcode 124 두 갈래 나무 중 가장 긴 경로와 사상https://blog.csdn.net/speargod/article/details/98692052
각 노드를 두루 돌아다니며 각 노드의 깊이를 구하고 현재 노드를 최고점으로 하는 최장 경로와 (사실은 그의 왼쪽 트리 깊이+오른쪽 트리 깊이)

코드:

class Solution {
public:
    int diameterOfBinaryTree(TreeNode* root) {
        int res=0;
        depth(root,res);
        return res;
    }
    
    //  root 
    //  , + 
    //   , , ( + )
    int depth(TreeNode* root,int &res){
        if(!root)
            return 0;
        int left=depth(root->left,res);
        int right=depth(root->right,res);
        res=max(res,left+right);
        return max(left,right)+1;
    }
    
};

좋은 웹페이지 즐겨찾기