이 진 트 리 옮 겨 다 니 기: 이 진 트 리 의 모든 노드 를 합 치 는 두 가지 방법 (2)
1414 단어 알고리즘
함수 에서 재 귀적 호출 을 보고 되 돌아 오 는 상황 을 볼 때 보통 아래 에서 위로 이해 하고 정리 하 는 것 이 좋 습 니 다.아래 의 두 문장 처럼 마지막 에 모두 귀속 에서 효과 가 생 겼 다.
lsum=Sum(T->left);
rsum=Sum(T->right);
int Sum(TreeNode* T){
if(T==NULL)return 0;
int sum=0;
int lsum,rsum;
lsum=Sum(T->left);
rsum=Sum(T->right);
sum=T->val+lsum+rsum;
return sum;
}
방법 2. 외부 변 수 를 이용 하여 옮 겨 다 닐 때마다 방문 하여 외부 변 수 를 수정 합 니 다.
함수 호출 에서 되 돌아 오지 않 았 습 니 다. 위 에서 아래로 이해 할 수 있 습 니 다. 물론 아래 에서 위로 이해 할 수도 있 습 니 다. 이것 은 트 리 의 이동 과 유사 합 니 다.
int Sum(TreeNode* T,int& sum){
if(T==NULL)return 0;
sum+=T->val;
Sum(T->left,sum);
Sum(T->right,sum);
}
전형 적 인 예제 leetcode 437
class Solution {
public:
int pathSum(TreeNode* root, int sum) {
if(root==NULL)return 0;
int count=0;
helper(root,sum,count);
int lres,rres;
lres=pathSum(root->left,sum);
rres=pathSum(root->right,sum);
return count+lres+rres;
}
void helper(TreeNode* T,int sum,int& count){
if(T==NULL)return;
int res=sum-T->val;
if(res==0)count++;
helper(T->left,res,count);
helper(T->right,res,count);
}
};
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
물체 검출의 평가 지표 IoU의 계산 방법Yolo나 SSD 등 물체 검출에서 평가 지표로 사용되는 IoU에 대해 조사했으므로 정리했습니다. IoU (Intersection over Union)는 두 영역이 얼마나 겹치는지를 나타내는 지표입니다. 두 영역의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.