用非递归 DFS 代码(栈,先压右再压左)在上题二叉树中搜索数值 20,可能的输出是:
TreeNode* dfs(TreeNode* root, int a) {
if (!root) return nullptr;
stack<TreeNode*> stk; stk.push(root);
while (!stk.empty()) {
TreeNode* node = stk.top(); stk.pop();
if (node->val == a) return node;
cout << node->val << " ";
if (node->right) stk.push(node->right);
if (node->left) stk.push(node->left);
}
return nullptr;
}
- A. 5 2 -4 3 17 9
- B. -4 2 3 5 9 17
- C. 5 2 17 -4 3 9
- D. 以上都不对
正确答案:A