第一种解法:开始时当前结点数curLevelCount=1,nextLevelCount=0,根据curLevelCount来输入每一层的结点值,当其左右子树存在时,将左右子树存入队列,并nextLevelCount++,每弹出一个当前层的结点时,curLevelCount--,当其为0时,再创建一个新的vector。 C++: 1vector<vector<int>> levelOrder(TreeNode*root) {2vec...
return its bottom-up level order traversal as: [[15,7],[9,20],[3]] 二叉树的层次遍历,不过需要保持每一层的数据,可以通过vector配合队列实现,实现: classSolution{public:vector<vector<int>>levelOrderBottom(TreeNode*root){vector<vector<int>>vvi;if(root==NULL){returnvvi;}queue<TreeNode*>queue;...
vector<vector<int>> levelOrder(TreeNode*root) { levelOrder(root,0);returnres; }voidlevelOrder(TreeNode* root,inth) {if(root == nullptr)return;if(res.size() <=h) res.push_back({}); levelOrder(root->left, h+1); res[h].push_back(root->val); levelOrder(root->right, h+1); ...
Binary Tree Level Order Traversal Given a binary tree, return the level order traversal of its nodes' values. (ie, from left to right, level by level). For example: Given binary tree [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 return its level order traversal as: [[3],[...
level-order-traversal* * ** @author YuCheng**/publicclassLintCode0069LevelOrderTest{privatefinalstaticLoggerlogger=LoggerFactory.getLogger(LintCode0069LevelOrderTest.class);/***/@TestpublicvoidtestMain(){logger.debug("BEGIN");Stringdata="{3,9,20,#,#,15,7}";TreeNodetn=deserialize(data);Syste...
这道题考的就是 BFS,我们可以通过 DFS 实现。只需要在递归过程中将当前 level 传入即可。 publicList<List<Integer>>levelOrder(TreeNoderoot){List<List<Integer>>ans=newArrayList<>();DFS(root,0,ans);returnans;}privatevoidDFS(TreeNoderoot,intlevel,List<List<Integer>>ans){if(root==null){return;}...
LeetCode Binary Tree Level Order Traversal II (二叉树颠倒层序),题意:从左到右统计将同一层的值放在同一个容器vector中,要求上下颠倒,左右不颠倒。思路:广搜逐层添加进来,最后再反转。1/**2*Definitionforabinarytreenode.3*structTreeNode{4*intval;5...
107. Binary Tree Level Order Traversal II(层序遍历) Given a binary tree, return the bottom-up level order traversal of its nodes' values. (ie, from left to right, level by level from leaf to root). For example: Given binary tree [3,9,20,null,null,15,7],...
voidinsertLevelOrder(structNode* root,intdata){ // Create a queue for level order traversal structNode** queue =(structNode**)malloc(100 *sizeof(structNode*)); intfront = 0; intrear = 0; // If the tree is empty, assign the data to the root ...
push(NULL); 29 int nLevelCount = 1; 30 while (true) { 31 TreeNode *pTemp = tree_queue.front(); 32 tree_queue.pop(); 33 if (pTemp == NULL) { 34 if (nLevelCount%2 == 0) { //if the num of level is odd, swap the ivec; 35 Swap(ivec); 36 } 37 tree_vector.push_...