前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >面试题-算法:二叉树的前序遍历

面试题-算法:二叉树的前序遍历

作者头像
别明天就今天吧
发布2020-09-07 19:03:12
3170
发布2020-09-07 19:03:12
举报
文章被收录于专栏:别明天就今天吧

今天说下二叉树的前序遍历,先来一颗二叉树熟悉熟悉:

前序遍历:先输出该节点,然后输出左孩子,然后输出右孩子。

代码语言:javascript
复制
public class Tree {

    //定义一颗树
public static class TreeNode{
int val;        //左孩子
private TreeNode left;        //右孩子
private TreeNode right;
        TreeNode(int x){
            val = x;
        }
    }

public static List<Integer> preOrder(TreeNode root){        //结果
List<Integer> list = new LinkedList<>();        //栈
Stack<TreeNode> stack = new Stack<>();
        if(root ==null){
            return list;
        }

        stack.push(root);
while(!stack.isEmpty()){            //栈顶元素出栈
TreeNode treeNode = stack.pop();
list.add(treeNode.val);            //左孩子是否存在
if(treeNode.right!=null){
                stack.push(treeNode.right);
}            //右孩子是否存在
if(treeNode.left!=null){
                stack.push(treeNode.left);
            }
        }
        return list;
    }

    public static void main(String[] args) {
        //初始化二叉树
        TreeNode root = new TreeNode(1);
        root.left = new TreeNode(2);
        root.right = new TreeNode(3);
        root.left.left = new TreeNode(4);
        root.left.right = new TreeNode(5);
        
        //例如:上述初始化的二叉树,前序遍历输出1,2,4,5,3
        List<Integer> integers = preOrder(root);
        System.out.println(integers);
    }

}
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-08-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 别明天就今天吧 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档