본문 바로가기
Problem Solving/리트코드

[리트코드 leetcode] 687. Longest Univalue Path

by ggyongi 2021. 4. 12.
반응형

leetcode.com/problems/longest-univalue-path/

 

Longest Univalue Path - LeetCode

Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.

leetcode.com

 

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution: 
    
    maxlen = 0
    
    def longestUnivaluePath(self, root: TreeNode) -> int:
        
        def dfs(node: TreeNode) -> int:  
            if not node:
                return 0
            
            left = dfs(node.left)
            right = dfs(node.right)
            
            
            if node.left and node.val == node.left.val and node.right and node.val == node.right.val:
                state=  max(left, right)+1 
                self.maxlen = max(self.maxlen, left+right+2)
                
            elif node.left and node.val == node.left.val:  
                state = left+1
                self.maxlen = max(self.maxlen, left+1)
                
            elif node.right and node.val == node.right.val:
                state = right+1
                self.maxlen = max(self.maxlen, right+1)
                
            else:
                left, right =0,0
                state=0
            
        
            return state 
            
        
        dfs(root)
        return self.maxlen
        
 

비전공자 네카라 신입 취업 노하우

시행착오 끝에 얻어낸 취업 노하우가 모두 담긴 전자책!

kmong.com

댓글