java二叉树层序遍历怎么实现

avatar
作者
猴君
阅读量:0

在Java中,可以使用队列来实现二叉树的层序遍历。具体步骤如下:

  1. 首先创建一个队列,将根节点入队。

  2. 进入循环,直到队列为空为止。在循环中,首先记录当前队列的大小,表示当前层的节点个数。

  3. 遍历当前层的节点个数次,每次将队头节点出队,并将其值存入结果列表中。同时,将其左右子节点入队。

  4. 将结果列表返回即可完成二叉树的层序遍历。

以下是Java代码示例:

import java.util.ArrayList; import java.util.LinkedList; import java.util.List; import java.util.Queue;  class TreeNode {     int val;     TreeNode left;     TreeNode right;      TreeNode(int x) {         val = x;     } }  public class BinaryTreeLevelOrderTraversal {     public List<List<Integer>> levelOrder(TreeNode root) {         List<List<Integer>> result = new ArrayList<>();         if (root == null) {             return result;         }          Queue<TreeNode> queue = new LinkedList<>();         queue.offer(root);          while (!queue.isEmpty()) {             int size = queue.size();             List<Integer> level = new ArrayList<>();              for (int i = 0; i < size; 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);                 }             }              result.add(level);         }          return result;     } } 

使用以上代码,可以对给定的二叉树进行层序遍历,并返回一个包含每一层节点值的列表。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!