本文共 1048 字,大约阅读时间需要 3 分钟。
给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。
借用了队列:/** * 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 > ret; if(root==NULL) return ret; queue q; q.push(root); queue l; l.push(0); // int level = 0; vector t; int pre = 0; while (q.size()>0) { TreeNode *node = q.front(); // cout << node->val <<"*"<< endl; q.pop(); int level = l.front(); l.pop(); if (level == pre) { t.push_back(node->val); } else { ret.push_back(t); t.clear(); t.push_back(node->val); // cout << "^^" << ret.size()<< endl; pre = level; } int flag = 0; if (node->left != NULL) { q.push(node->left); level++; flag = 1; l.push(level); } if (node->right != NULL) { q.push(node->right); if (flag == 0) level++; l.push(level); } } ret.push_back(t); return ret; }};
转载地址:http://ieugn.baihongyu.com/