对刷题过程中的牵扯到树的层次遍历的代码总结。
1. 基础版,树的层次遍历java代码的实现(利用的是队列):
/**
* Definition for binary tree with next pointer.
* public class TreeLinkNode {
* int val;
* TreeLinkNode left, right, next;
* TreeLinkNode(int x) { val = x; }
* }
*/
import java.util.LinkedList;
import java.util.Queue;
public class Solution {
public void leveltravse(TreeLinkNode root) {
if(root == null){
System.out.println("该树为空");
}
if(root!=null){
Queue<TreeLinkNode> q = new ArrayList<>();
TreeLinkNode temp = null;
q.offer(root);
while(q.size()!=0){
temp = q.poll();
System.out.printl(temp.val);
if(temp.left!=null){
q.offer(temp.left);
}
if(temp.right!=null){
q.offer(temp.right);
}
}
}
}
}
2. 求树的深度,利用树的层次遍历的思想,java代码实现:
import java.util.ArrayList;
/*
public class TreeNode {
int val = 0;
TreeNode left = null;
TreeNode right = null;
public TreeNode(int val) {
this.val = val;
}
}
*/
import java.util.LinkedList;
import java.util.Queue;
public class Solution {
public int Print(TreeNode pRoot) {
Queue<TreeNode> q = new LinkedList<>();
TreeNode temp = null;
if(pRoot==null)
return 0;
int front = -1;
int rear = -1;
int last=0;
int level=0; //记录层数
q.offer(pRoot);
rear++;
while(q.size()!=0){
temp = q.poll();
front++;
list.add(temp.val);
if(temp.left!=null){
q.offer(temp.left);
rear++;
}
if(temp.right!=null){
q.offer(temp.right);
rear++