本文共 883 字,大约阅读时间需要 2 分钟。
给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从左到右访问所有节点)。
例如:
给定二叉树:[3,9,20,null,null,15,7]
, 3 / \ 9 20 / \ 15 7
返回其层次遍历结果:
[ [3], [9,20], [15,7]]
通过队列进行操作,将每一层的节点的左右子节点入队,然后删除此节点,直到队列为空为止。。
c++:
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public: vector> levelOrder(TreeNode* root) { vector > ve; if(root==NULL) return ve; TreeNode * t; queue q; q.push(root); while (!q.empty()) { int size=q.size(); vector tvec; while (size--) { t=q.front(); q.pop(); tvec.push_back(t->val); if(t->left) q.push(t->left); if(t->right) q.push(t->right); } ve.push_back(tvec); } return ve; } };
转载地址:http://dvaen.baihongyu.com/