ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

144. 二叉树的前序遍历

2021-08-31 21:32:21  阅读:158  来源: 互联网

标签:node 144 return cur 前序 list 二叉树 null stack


Given a binary tree, return the preorder traversal of its nodes' values.

Example:

Input: [1,null,2,3]
   1
    \
     2
    /
   3

Output: [1,2,3]

Follow up: Recursive solution is trivial, could you do it iteratively?

二叉树的先序遍历。

这个比较简单,直接看递归和非递归的代码实现

class Solution {
    
    public List<Integer> preorderTraversal(TreeNode root) {
        List<Integer> list=new ArrayList<>();
         process(root,list);
         return list;

    }

    public void process(TreeNode node,List<Integer> list){
        if(node==null){
            return;
        }
        list.add(node.val);
        process(node.left,list);
        process(node.right,list);
    }
}

先序遍历:中左右
非递归的方式用stack来实现(深度优先遍历用stack,广度优先用队列)
对当前节点压入stack,弹出并打印(中),再对cur压入右左(左右)
class Solution {

    public List<Integer> preorderTraversal(TreeNode root) {
         List<Integer> list=new ArrayList<>();
        if(root==null){
            return list;
        }
        Stack<TreeNode> stack=new Stack<>();
        stack.push(root);
        while(!stack.isEmpty()){
           TreeNode cur=stack.pop();
           list.add(cur.val);
           if(cur.right!=null){
               stack.push(cur.right);
           }
           if(cur.left!=null){
               stack.push(cur.left);
           }
        }
        return list;
    }
}

  

 

标签:node,144,return,cur,前序,list,二叉树,null,stack
来源: https://www.cnblogs.com/iwyc/p/15210915.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有