Leetcode#104. Maximum Depth of Binary Tree(최대 두 갈래 트리 깊이)

제목


Given a binary tree, find its maximum depth.
The maximum depth is the number of nodes along the longest path from the root node down to the farthest leaf node.

제목


너에게 두 갈래 나무를 하나 주어 두 갈래 나무의 가장 큰 깊이를 구해라.

분석


반복 모델은 다음과 같습니다.
  • f(root)==0 root==NULL
  • f(root)=max(f(root->left), f(root->right)+1 기타 상황

  • 파이썬 언어

    # Definition for a binary tree node.
    # class TreeNode(object):
    #     def __init__(self, x):
    #         self.val = x
    #         self.left = None
    #         self.right = None
    
    class Solution(object):
        def maxDepth(self, root):
            """
            :type root: TreeNode
            :rtype: int
            """
            if root == None:
                return 0
            else:
                lh = self.maxDepth(root.left)
                rh = self.maxDepth(root.right)
                return max(lh,rh)+1
    

    C++ 언어

    /**
     * Definition for a binary tree node.
     * struct TreeNode {
     *     int val;
     *     TreeNode *left;
     *     TreeNode *right;
     *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
     * };
     */
    class Solution {
    public:
    
        int maxDepth(TreeNode* root) 
        {
             int lh, rh;
            if(root==NULL)
                return 0;
            else
            {
                // 
                lh = maxDepth(root->left);
                // 
                rh = maxDepth(root->right);
                // , ,lh =0, rh =0 , lh>rh  rh+1=1
               // return (lh>rh)?(lh+1):(rh+1);
                return max(lh,rh)+1;
            }
    
        }
    };

    좋은 웹페이지 즐겨찾기