手写代码:二叉树深度优先遍历
参考回答:
//利用栈,现将右子树压栈再将左子树压栈
void DepthFirstSearch(BitNode *root) { stack<BitNode*> nodeStack; nodeStack.push(root); while (!nodeStack.empty()) { BitNode *node = nodeStack.top(); cout << node->data << ' '; nodeStack.pop(); if (node->right) { nodeStack.push(node->right); } if (node->left) { nodeStack.push(node->left); } } }