publicList<List<Integer>>levelOrder(TreeNode root){List<List<Integer>> res =newArrayList<>();Queue<TreeNode> queue =newLinkedList<>();if(root !=null){//队列中加入初始节点queue.offer(root);}while(!queue.isEmpty()){//只要队列不为空就一直进行int n = queue.size();List<Integer> level =newArrayList<>();for(int i =0; i < n; i++){//只循环当前层拥有的节点次数TreeNode node = queue.poll();level.add(node.val);if(node.left !=null){//若不为空就把下一层的节点加入,并且排到后面queue.offer(node.left);}if(node.right !=null){//左右各一次queue.offer(node.right);}}res.add(level);}return res;}
三、图论的DFS
核心思想在于上下左右的操作,以及边界的判断
例题:力扣200.岛屿数量
int result=0;publicintnumIslands(char[][] grid){int result=0;for(int i=0;i<grid.length;i++){for(int j=0;j<grid[0].length;j++){if(grid[i][j]=='1'){result++;dfs(grid,i,j);}}}return result;}publicvoiddfs(char[][] grid,int r,int c){// 判断 base caseif(!inArea(grid, r, c)){return;}// 如果这个格子不是岛屿,直接返回if(grid[r][c]!='1'){return;}grid[r][c]='0';// 将格子标记为「已遍历过」// 访问上、下、左、右四个相邻结点dfs(grid, r -1, c);dfs(grid, r +1, c);dfs(grid, r, c -1);dfs(grid, r, c +1);}// 判断坐标 (r, c) 是否在网格中publicbooleaninArea(char[][] grid,int r,int c){return0<= r && r < grid.length &&0<= c && c < grid[0].length;}
隐式类型转换: C 的整型算术运算总是至少以缺省(默认)整型类型的精度来进行的。 为了获得这个精度,表达式中的字符和短整型操作数在使用之前被转换为普通整型,这种转换称为整型提升。 #include <stdio.h>int main()
{char c 1;printf(…
此代码包含普通get,post请求和下载,代码如下:
Configuration
public class RestTemplateConfig {Beanpublic RestTemplate restTemplate() {return new RestTemplate();}}Data
public class CustomButtonRequestDto {ApiModelProperty(value…
A.如果钉子与地面距离大于绳子的长度就必须剪
#include<bits/stdc.h>
#define eps 1e-5
#define INF 1e9
using namespace std;
typedef long long ll;
const int N 2e6 9;
int a[N],b[N],cl[N];
void Lan(){int n;cin>>n;for(int i1;i<n;i){cin>>a[i]…