zoukankan      html  css  js  c++  java
  • Binary Tree Preorder Traversal leetcode java

    题目:

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

    For example:
    Given binary tree {1,#,2,3},

       1
        
         2
        /
       3
    

    return [1,2,3].

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

    题解:

     递归做法如下:

     1     public void helper(TreeNode root, ArrayList<Integer> re){
     2         if(root==null)
     3             return;
     4         re.add(root.val);
     5         helper(root.left,re);
     6         helper(root.right,re);
     7     }
     8     public ArrayList<Integer> preorderTraversal(TreeNode root) {
     9         ArrayList<Integer> re = new ArrayList<Integer>();
    10         if(root==null)
    11             return re;
    12         helper(root,re);
    13         return re;
    14     }

     非递归方法:

     1 public ArrayList<Integer> preorderTraversal(TreeNode root) {
     2     ArrayList<Integer> res = new ArrayList<Integer>();
     3     if(root == null)
     4         return res;
     5     LinkedList<TreeNode> stack = new LinkedList<TreeNode>();
     6     while(root!=null || !stack.isEmpty()){
     7         if(root!=null){
     8             stack.push(root);
     9             res.add(root.val);
    10             root = root.left;
    11         }
    12         else{
    13             root = stack.pop();
    14             root = root.right;
    15         }
    16     }
    17     return res;
    18 }

  • 相关阅读:
    在 tornado 中异步无阻塞的执行耗时任务
    django在nginx uwsgi和tornado异步方案在项目中的体验
    使用tornado让你的请求异步非阻塞
    转:Parameter Server 详解
    转:复杂网络分析总结
    从SDCard获取的图片按分辨率处理的方法
    胡振亮:原来这就是非常多站点百度权重做不上去的原因
    c语言函数---I
    [LeetCode] Single Number III
    hdu 5389 Zero Escape (dp)
  • 原文地址:https://www.cnblogs.com/springfor/p/3877182.html
Copyright © 2011-2022 走看看