给定一个二叉树,返回自下而上的顺序遍历其节点值(即从左到右,从叶到根逐级)。
来源:互联网 发布:淘宝静物摄影 编辑:程序博客网 时间:2024/05/20 10:14
例如:
3 / \ 9 20 / \ 15 7 返回:按层遍历[[15,7] [9,20],[3],]
[ [15,7] [9,20], [3],]
vector<vector<int> > levelOrderBottom(TreeNode *root) { vector<vector<int>> result; if(root==NULL) return result; queue<TreeNode*> que; int currentCount=1; int nextCount=0; que.push(root); vector<int> path; while(!que.empty()){ TreeNode* p=que.front(); que.pop(); path.push_back(p->val); currentCount--; if(p->left){ que.push(p->left); nextCount++; } if(p->right){ que.push(p->right); nextCount++; } if(currentCount==0){ result.push_back(path); path.clear(); currentCount=nextCount; nextCount=0; } } reverse(result.begin(),result.end()); return result; }
深度DFS
vector<vector<int> > levelOrderBottom(TreeNode *root) { if(root==NULL) return vector<vector<int>>(); vector<vector<int>> result(treeDepth(root),vector<int>()); dfs(root,result.size()-1,result); return result; } int treeDepth(TreeNode* root){ if(root==NULL) return 0; if(root->left==NULL&&root->right==NULL) return 1; return max(treeDepth(root->left),treeDepth(root->right))+1; } void dfs(TreeNode* root,int high,vector<vector<int>>& result){ if(root==NULL) return; result[high].push_back(root->val); dfs(root->left,high-1,result); //递归左子树 dfs(root->right,high-1,result); //递归右子树 }
阅读全文
0 0
- 给定一个二叉树,返回自下而上的顺序遍历其节点值(即从左到右,从叶到根逐级)。
- 二叉树的遍历(篇4)判断从根到叶节点的和是否等于某个给定的值
- 给定一个二叉树,节点值为0-9,从根节点到叶子结点组成一个数,求二叉树所有组成的数的和
- 给定一个二叉树,从左到右,找出第 k 个叶子节点 [# 65]
- 给定一个二叉树,从左到右,找出第 k 个叶子节点
- 给定一个二叉树和其中的一个节点,求中序遍历这个节点的下一个节点
- 给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回
- 试编写一个函数,返回一颗给定二叉树在中序遍历下的最后一个节点(分别用递归和非递归实现)
- 二叉树 给定一个节点,求中序遍历下一个节点
- 请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。
- 给定一个节点为头节点,从尾到头反过来打印出每个节点的值
- 从下至上按层遍历由广义表(节点为数字)构造的二叉树
- 从一个节点出发进行广度优先遍历的顺序是唯一的。
- 给定一个树的节点ID,递归遍历出以这个节点为根的子树,以JSON格式返回
- 对于一颗给定的二叉树,输出所有从根节点到叶节点的路径
- 给定一棵二叉树,二叉树每个节点的值唯一,从根节点开始找出路径上的所有节点的节点值之和等于规定值的路径
- (树的层序遍历)从上往下打印出二叉树的每个节点,同层节点从左至右打印。
- 给定一个完全的二叉树,计算节点的数量。
- 常用的一些正则 时间
- MySQL查询昨天的数据
- MFC 动态设置Button的文字
- 天池-智慧交通预测大赛-亚军-分享
- 在阿里云服务器Ubuntu14.04 64位上安装matlab2014a
- 给定一个二叉树,返回自下而上的顺序遍历其节点值(即从左到右,从叶到根逐级)。
- Jmeter Sampler (取样器插件开发) 制定自己的 Sampler
- C#生成8位字母数字组合随机的字符串
- Educational Codeforces Round 30 B.Balanced Substring
- Dubbo项目搭建和Dubbo-admin管理平台和Zookper注册中心搭建
- 湘阴汽车站县内班车县际班车时刻表
- socket的概念和原理
- 【云栖大会】阿里巴巴发布AliGenie 语音开放平台 “智联网”战略又落一子
- spring-事务传播特性