ich den folgenden Code-Snippet für rekursive Binary Tree Vorordnungsdurchquerung geschrieben haben:In Bezug auf Preorder Baum-Traversal
/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* TreeNode *left;
* TreeNode *right;
* TreeNode(int x) : val(x), left(NULL), right(NULL) {}
* };
*/
class Solution {
private:
std::vector<int> myVec;
public:
vector<int> preorderTraversal(TreeNode* root) {
if(root==NULL)
return vector<int>();
myVec.push_back(root->val);
preorderTraversal(root->left);
preorderTraversal(root->right);
return myVec;
}
};
Während dieser Code ausgeführt wird und erzeugt die erwartete Leistung, ich bin nicht ganz sicher, ob dies richtig ist; denn wenn ich preorderTraversal(root->left);
und preorderTraversal(root->right);
rufe, verwende ich nicht die Werte, die sie zurückgeben (vector<int>
s). Also,
- Ist das korrekt?
- Wenn nein, wie kann ich diesen Code dann korrigieren?
Versuchen Sie es mit Debugger und überprüfen, wenn die entsprechenden Werte hinzugefügt werden, in den Vektor. –
@ EdgarRokyan, meine Frage ist nicht über _when sie hinzugefügt werden_; tatsächlich ist meine Frage, ist es richtig, wenn sie hinzugefügt werden. –