struct TreeNode {
int val;
struct TreeNode *left;
struct TreeNode *right;
TreeNode(int x) : val(x), left(NULL), right(NULL) {}
};
TreeNode* createTree(vector<string> nodes) {
int len = nodes.size();
int current = 0;
vector<TreeNode*> pNodes;
TreeNode* pCurNode;
while (current < len) {
if (nodes[current] != "#")
pCurNode = new TreeNode(stoi(nodes[current]));
else
pCurNode = NULL;
if (current > 0) {
int parentIdx = (current - 1) >> 1;
if (current % 2 != 0)
pNodes[parentIdx]->left = pCurNode;
else
pNodes[parentIdx]->right = pCurNode;
}
pNodes.push_back(pCurNode);
++current;
}
delete pCurNode;
return pNodes[0];
}
void preOrder(TreeNode* pRoot, vector<int>& res) {
if (pRoot == NULL)
return;
res.push_back(pRoot->val);
preOrder(pRoot->left, res);
preOrder(pRoot->right, res);
return;
}
vector<string> treeList = { "8","8","7","9","2","#","#","#","#","4","7" };
TreeNode* pRoot = createTree(treeList);
vector<int> preorder;
preOrder(pRoot, preorder);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)