[剑指offer][面试题23]从上往下打印二叉树

来源:互联网 发布:百度统计安装淘宝店铺 编辑:程序博客网 时间:2024/06/04 19:15

从上往下打印出二叉树的每个结点,同一层的结点按照从左到右的顺序打印。

#include <iostream>#include <stack>using namespace std;struct Node{  int   m_nData;  Node *m_pLeft;  Node *m_pRight;  }; void traverseBinaryTreeByLevel(Node *pRoot){if (pRoot==NULL){return;}Node *pNode = NULL;deque<Node*> q;q.push_back(pRoot);while (!q.empty()){pNode = q.front();q.pop_front();cout<<pNode->m_nData<<" ";if (pNode->m_pLeft){q.push_back(pNode->m_pLeft);}if (pNode->m_pRight){q.push_back(pNode->m_pRight);}}}int main(){Node *node1 = new Node; node1->m_nData = 1;Node *node2 = new Node; node2->m_nData = 2;Node *node3 = new Node; node3->m_nData = 3;Node *node4 = new Node; node4->m_nData = 4;Node *node5 = new Node; node5->m_nData = 5;Node *node6 = new Node; node6->m_nData = 6;Node *node7 = new Node; node7->m_nData = 7;node1->m_pLeft = node2; node1->m_pRight = node3;node2->m_pLeft = node4; node2->m_pRight = node5;node3->m_pLeft = node6; node3->m_pRight = NULL;node4->m_pLeft = node7; node4->m_pRight = NULL;node5->m_pLeft = NULL; node5->m_pRight = NULL;node6->m_pLeft = NULL; node6->m_pRight = NULL;node7->m_pLeft = NULL; node7->m_pRight = NULL;/*          1           / \  2   3 / \ / 4  5 6       /      7*/traverseBinaryTreeByLevel(node1);}


原创粉丝点击