두 갈래 나무 균형 검사

1311 단어
1. 제목 내용
두 갈래 나무 균형 검사
 , , , , 1。

  TreeNode* root, bool, 

2. 제목 해석
균형 두 갈래 나무: 나무 중의 임의의 결점에 대해 두 개의 자목의 높이 차이는 1을 넘지 않는다.
나무의 높이(깊이)를 구하는 방법을 실현하여 좌우 나무의 높이차가 1보다 큰지 판단한다.
트리의 높이(깊이)를 구하는 방법을 구현하는 코드:
public int TreeDepth(TreeNode root){
    if(root==null) return 0;
    int left = TreeDepth(root.left);// 。
    int right = TreeDepth(root.right);// 。
    return (left>right)?left+1:right+1; // 1 。
}

두 갈래 나무가 균형 잡힌 두 갈래 나무인지 판단하는 코드는 다음과 같다.
import java.util.*;
/*
public class TreeNode {
    int val = 0;
    TreeNode left = null;
    TreeNode right = null;
    public TreeNode(int val) {
        this.val = val;
    }
}*/
public class Balance {
    public boolean isBalance(TreeNode root) {
        // write code here
        if(root==null) return true;
        int left = depth(root.left);
        int right = depth(root.right);
        int dif = left-right;
        if(dif>1||dif<-1)return false;
        return isBalance(root.left)&&isBalance(root.right);// 
    }
    public int depth(TreeNode root){
        if(root==null){
            return 0;
        }
        int left = depth(root.left);
        int right = depth(root.right);
        return (left>right)?left+1:right+1;
    }
}

좋은 웹페이지 즐겨찾기