이진 트리의 직경
3409 단어 leetcodejavascript
이진 트리의 지름은 트리의 두 노드 사이에서 가장 긴 경로의 길이입니다. 이 경로는 루트를 통과하거나 통과하지 않을 수 있습니다.
두 노드 사이의 경로 길이는 두 노드 사이의 에지 수로 표시됩니다.
예 1:
입력: 루트 = [1,2,3,4,5]
출력: 3
설명: 3은 경로 [4,2,1,3] 또는 [5,2,1,3]의 길이입니다.
/**
* @param {TreeNode} root
* @return {number}
*/
var diameterOfBinaryTree = function (root) {
let max = 0;
function maxDepth(root) {
if (root === null) return 0; // if our root(num) is null then there is no path. return 0/null
let left = maxDepth(root.left); // Assign the left of tree to LEFT; this will be easier to call it instead of writing "maxDepth(root.left)" each time
let right = maxDepth(root.right); //Same above
max = Math.max(max, left + right); //if the path doesn't go through the root we just get the max of them
return Math.max(left, right) + 1; // the path goes through the root so we add 1(for the root)
}
//since we don't know if the path will go through the root or not we will have to get the max between(path that visits the root, or the path that doesn't go through the root.)
maxDepth(root);
return max;
};
Reference
이 문제에 관하여(이진 트리의 직경), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/zeeshanali0704/diameter-of-binary-tree-1m4k텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)