검지offer-24.두 갈래 트리 중 하나가 되는 경로
1371 단어 검지offer
사고방식: 노드 값이 주어진 값과 같은지 판단하고 이 경로를 회수한다. 만약 같지 않으면 왼쪽 트리와 오른쪽 트리를 귀속시킨다. 주의해야 한다. 왼쪽 트리와 오른쪽 트리를 귀속할 때 두 번째 파라미터는 반드시 주어진 값으로 이전 값을 빼야 한다.(PathFind(tree->left,sum - tree->val);)예를 들어 왼쪽 트리를 귀속시키고 두 번째 매개 변수는sum-tree->val이다.비귀속 방법은 아직 생각해 내지 못했으니, 생각해 내고, 사고방식이 명확해지면 다시 보충해야 한다
/*
struct TreeNode {
int val;
struct TreeNode *left;
struct TreeNode *right;
TreeNode(int x) :
val(x), left(NULL), right(NULL) {
}
};*/
class Solution {
vector >res;
vectortemp;
void PathFind(TreeNode* tree,int sum)
{
temp.push_back(tree->val);
if (tree->val == sum && !tree->left && !tree->right)//
{
res.push_back(temp);
}
else
{
if (tree->left)
{
PathFind(tree->left,sum - tree->val);
}
if (tree->right)
{
PathFind(tree->right,sum - tree->val);
}
}
temp.pop_back();// ,
}
public:
vector > FindPath(TreeNode* root,int expectNumber)
{
if(root)
PathFind(root,expectNumber);
return res;
}
};
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
20200326 - 검지offer 면접문제 27: 두 갈래 나무의 거울이솔 위 안에 28문제의 답안이 있는데 어떻게 꼬치는지 모르겠다.간단해....
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.