leetcode 222. 완전 두 갈래 나무의 노드 개수

2731 단어 LeetCode
  • 제목 묘사
     :
    
     : , , , 。  h  ,  1~ 2h  。
    
     :
    
     : 
        1
       / \
      2   3
     / \  /
    4  5 6
    
     : 6
    
  • 분석: 두 갈래 나무의 좌우 자수는 모두 두 갈래 나무이기 때문에 두 갈래 나무와 관련된 문제는 일반적으로 나누어 다스리는 사고방식을 바탕으로 해답을 구한다. 즉, 큰 문제는 여러 개의 자 문제로 나누어 해답을 구한다.실현 차원에서 나누어 치료하는 것은 일반적으로 귀속을 결합시켜 실현한다. 귀속은 하나의 퇴출 조건을 포함해야 하고 퇴출 조건은 일반적으로 가장 간단한 상황을 바탕으로 설계한다.이 완전한 두 갈래 나무의 노드 개수에 대한 해답 문제에 대해 가장 간단한 상황은 뿌리 노드가 존재하지 않으면 노드 개수는 0이고 그 다음은 뿌리 노드만 있고 노드 개수는 1이다. 그 다음에 좌우 서브 트리로 귀속되어 구체적으로 다음과 같이 실현된다
    /**
     * Definition for a binary tree node.
     * public class TreeNode {
     *     int val;
     *     TreeNode left;
     *     TreeNode right;
     *     TreeNode(int x) { val = x; }
     * }
     */
    class Solution {
        public int countNodes(TreeNode root) {
            if (root==null) {
                return 0;
            }
            if (root.left==null && root.right==null) {
                return 1;
            }
            return countNodes(root.left)+countNodes(root.right)+1;
        }
    }
    
  • 좋은 웹페이지 즐겨찾기