leet code Binary Tree Level Order Traversal II 层次遍历二叉树

leet code 题目:https://leetcode.com/problems/binary-tree-level-order-traversal-ii/

层次遍历二叉树:

思路:使用队列层次遍历二叉树,

考点:

1.使用队列,先弹出队列对头,把队头元素的左节点和右节点加入队列。

2.保存元素,使用List 的add方法,每次在队头添加元素。

public static void main(String[] args) {
		TreeNode treeNode1=new TreeNode(3);
		TreeNode treeNode2=new TreeNode(9);
		TreeNode treeNode3=new TreeNode(20);
		TreeNode treeNode4=new TreeNode(15);
		TreeNode treeNode5=new TreeNode(7);
		treeNode1.left=treeNode2;
		treeNode1.right=treeNode3;
		treeNode3.left=treeNode4;
		treeNode3.right=treeNode5;

		List<List<Integer>> lists = levelOrderBottom(treeNode1);
		for (List<Integer> list : lists) {
			System.out.println(list);
		}
	}
	public static  List<List<Integer>> levelOrderBottom(TreeNode root) {
		List<List<Integer>> list=new ArrayList<>();
		Queue<TreeNode> queue=new LinkedList<>();
		if(root==null){
			return list;
		}
		queue.offer(root);
		while(!queue.isEmpty()){
			int size = queue.size();
			List<Integer> integerList=new ArrayList<>();
			for(int i=0;i<size;i++){
				TreeNode peek = queue.peek();
				queue.poll();
				if(peek.left!=null){
					queue.offer(peek.left);
				}
				if(peek.right!=null){
					queue.offer(peek.right);
				}
				integerList.add(peek.val);
			}
			list.add(0,integerList);
		}
		return list;
	}

猜你喜欢

转载自blog.csdn.net/u011243684/article/details/84755940
今日推荐