leetcode: path sum (I) 귀속 및 비귀속 해법
Path Sum
Total Accepted: 12663
Total Submissions: 42061 My Submissions
Given a binary tree and a sum, determine if the tree has a root-to-leaf path such that adding up all the values along the path equals the given sum. For example:
Given the below binary tree and
sum = 22
, 5
/ \
4 8
/ / \
11 13 4
/ \ \
7 2 1
return true, as there exist a root-to-leaf path
5->4->11->2
which sum is 22. 반복 해법:
class Solution{
public:
bool hasPathSum(TreeNode *root, int sum) {
if(!root)
return false;
else if(root->val == sum && !root->left && !root->right)
return true;
return hasPathSum(root->left , sum - root->val) || hasPathSum(root->right, sum - root->val);
};
};
비귀속 해법: 두 개의 창고를 정의한다. 하나는 저장 전 순서가 반복되는 결점, 하나는 저장 전 순서가 반복될 때의 결점 누적 값이다.
/** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution { public: bool hasPathSum(TreeNode *root, int sum) { if(!root) return false; stack
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.