zoukankan      html  css  js  c++  java
  • 二叉树前序非递归遍历

     1 package com.basic.bt;
     2 
     3 import java.util.ArrayList;
     4 import java.util.Stack;
     5 
     6 /**
     7  * Created by mac on 2017/1/19.
     8  */
     9 public class PreOrderBT {
    10 
    11     public ArrayList<Integer> result = new ArrayList<>();
    12     public ArrayList<Integer> pre = new ArrayList<>();
    13 
    15     public void preOrder(TreeNode root) {
    16         if(root == null) {
    17             return;
    18         }
    19         //访问跟 -> 左孩子 -> 右孩子
    20         result.add(root.val);
    21         preOrder(root.left);
    22         preOrder(root.right);
    23     }
    24 
    25     // no recursion
    26     public void preOrderTraversal(TreeNode root)
    27     {
    28         if(root == null) {
    29             return;
    30         }
    31         Stack<TreeNode> stack = new Stack<TreeNode>();
    32         stack.push(root);
    33         while(!stack.isEmpty()) {
    34             TreeNode node = stack.pop();
    35             pre.add(node.val);
    36             if(node.right != null) {
    37                 stack.push(node.right);
    38             }
    39             if(node.left != null) {
    40                 stack.push(node.left);
    41             }
    42         }
    43 
    44     }
    45 
    46     public  static void main(String[] args) {
    47         PreOrderBT pre = new PreOrderBT();
    48         TreeNode root = new TreeNode(0);
    49         TreeNode node1 = new TreeNode(1);
    50         TreeNode node2 = new TreeNode(2);
    51         TreeNode node3 = new TreeNode(3);
    52         TreeNode node4 = new TreeNode(4);
    53 
    54         root.left = node1;
    55         root.right = node2;
    56         node1.left = node3;
    57         node1.right =node4;
    58         pre.preOrderTraversal(root);
    59         for(int i = 0; i < pre.pre.size(); i++) {
    60             System.out.println(pre.pre.get(i));
    61         }
    62     }
    63 
    64 }
  • 相关阅读:
    如何避免自己上传的视频或者音频资源被下载
    定期备份服务器上的项目到本地服务器
    查看项目中的laravel的版本
    PHP高并发和大流量的解决方案
    wordpress的安装及使用
    openstack及组件简要介绍
    Java中 如何把Object类型强转成Map<String, String>类型
    JSch基本使用
    Ganymed SSH-2 for Java
    全面解析NIO
  • 原文地址:https://www.cnblogs.com/superzhaochao/p/6323671.html
Copyright © 2011-2022 走看看