栏目分类:
子分类:
返回
终身学习网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
终身学习网 > IT > 软件开发 > 后端开发 > Java

2627二叉树的层次遍历和之字顺序打印

Java 更新时间:发布时间: 百科书网 趣学号
26.二叉树的层次遍历

用列队,BFS,时间复杂度和空间复杂度都是O(N)

import java.util.*;



public class Solution {
    
    public ArrayList> levelOrder (TreeNode root) {
        // write code here
        ArrayList> res = new ArrayList>();
        Queue q = new ArrayDeque<>();
        q.offer(root);
        while(!q.isEmpty()){
            //一层
            ArrayList row = new ArrayList();
            int count = q.size();
            //这层的个数刚好是队列的长度
            while(count-- >0){
                TreeNode node = q.poll();
                row.add(node.val);
                if(node.left!=null) q.offer(node.left);
                if(node.right!=null) q.offer(node.right);
            }
            res.add(row);
        }
        return res;
    }
}
27.二叉树之字打印

一开始是在offer左节点和右节点的顺序上做判断,测试了一下发现是错误的,第二个例子就错误了,后面就直接在row的数组中判断奇数=偶层,偶层把row数组反转一下,其余和上面上一题的层次遍历完全一致、时间复杂度和空间复杂度都是O(N)

import java.util.*;
import java.util.ArrayList;


public class Solution {
    public ArrayList > Print(TreeNode pRoot) {
        ArrayList> res = new ArrayList>();
        Queue q = new ArrayDeque<>();
        if(pRoot==null) return new ArrayList>(0);
        q.offer(pRoot);
        int index = 0;
        while(!q.isEmpty()){
            ArrayList row = new ArrayList<>();
            ArrayList rever = new ArrayList<>();
            int count = q.size();
            index++;
            while(count-- >0){
                    TreeNode node = q.poll();
                    row.add(node.val);                 
                    if(node.left!=null) q.offer(node.left);//奇数层从右到左                   
                    if(node.right!=null) q.offer(node.right);
            } 
            if(index%2==0){
                for(int i = row.size()-1; i>=0;i--){
                    rever.add(row.get(i));
                }
                res.add(rever);
            }
            else res.add(row);
        }
        return res;
    }

}
转载请注明:文章转载自 www.051e.com
本文地址:http://www.051e.com/it/1050464.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 ©2023-2025 051e.com

ICP备案号:京ICP备12030808号