剑指offer 从上往下打印出二叉树的每个节点

来源:互联网 发布:caffe绘制网络结构图 编辑:程序博客网 时间:2024/06/08 02:16

题目描述

从上往下打印出二叉树的每个节点,同层节点从左至右打印。

思路:队列 按层入队按层出队 层次遍历

  1. 先将根节点入队列、接着出队

  2. 接着从下一层的头结点入队列,直到到该层的右孩子,每次都判断是否到了上一层的右孩子,接着遍历下一层,直到为NULL为止

/*struct TreeNode {    int val;    struct TreeNode *left;    struct TreeNode *right;    TreeNode(int x) :            val(x), left(NULL), right(NULL) {    }};*/class Solution {public:    vector<int> PrintFromTopToBottom(TreeNode* root) {        queue<TreeNode*> q;        q.push(root);        vector<int> v;        while(!q.empty()){        root=q.front(); q.pop();        if(!root) continue;        v.push_back(root->val);        q.push(root->left);        q.push(root->right);        }        return v;    } };


0 0
原创粉丝点击