leetcode 알고리즘 문제 687(간단 174) 최장 동치 경로

5732 단어 #leetcode간단하다

leetcode 알고리즘 문제 687(간단 174) 최장 동치 경로

  • 제목 소개
  •  ,
     ,
     。
     。
    

  • 입력
                 5
                / \
               4   5
              / \   \
             1   1   5
    

    출력: 2
    입력
                 1
                / \
               4   5
              / \   \
             4   4   5
    

    출력 2
  • 주의

  • 주어진 두 갈래 나무는 10000개의 결점을 넘지 않는다.나무의 높이는 1000을 넘지 않는다.
  • 해법 1
  • /**
     * Definition for a binary tree node.
     * function TreeNode(val) {
     *     this.val = val;
     *     this.left = this.right = null;
     * }
     */
    /**
     * @param {TreeNode} root
     * @return {number}
     */
    var longestUnivaluePath = function(root) {
      if (!root) {
        return 0;
      }
      let left = findValPath(root.left, root.val)
      let right = findValPath(root.right, root.val)
      return Math.max(left.max, right.max, left.count + right.count);
    };
    
    const findValPath = (node, val) => {
      let count = findValCount(node, val);
      let max = longestUnivaluePath(node);
      return { count, max };
    }
    
    const findValCount = (node, val) => {
      if (!node || node.val !== val) {
        return 0
      }
      return Math.max(findValCount(node.left, val), findValCount(node.right, val)) + 1;
    }
    
    

    실행 시간: 232ms, 모든 JavaScript 커밋에서 98.77%의 사용자 물리치기
    메모리 소비량: 62.9MB, 모든 JavaScript 커밋에서 사용자 8.33% 물리치기

    좋은 웹페이지 즐겨찾기