void dfs(Node* head) {
if (head == nullptr) {
return;
}
std::cout << head->value << ",";
dfs(head->left);
dfs(head->right);
}
void bfs(Node* head) {
if (head == nullptr) { // if head is nullptr, return directly
return;
}
std::queue<Node*> qbfs;
qbfs.push(head);
while (!qbfs.empty()) {
std::cout << qbfs.front()->value << ",";
if (qbfs.front()->left != nullptr) { // if current queue front has left child
qbfs.push(qbfs.front()->left);
}
if (qbfs.front()->right != nullptr) { // if current queue front has right child
qbfs.push(qbfs.front()->right);
}
qbfs.pop(); // pop if we have alreay visit the node
}
}
c++实现树的dfs,bfs
最新推荐文章于 2023-08-03 00:48:13 发布