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 }
  • 相关阅读:
    Vasya and Endless Credits CodeForces
    Dreamoon and Strings CodeForces
    Online Meeting CodeForces
    数塔取数 基础dp
    1001 数组中和等于K的数对 1090 3个数和为0
    1091 线段的重叠
    51nod 最小周长
    走格子 51nod
    1289 大鱼吃小鱼
    POJ 1979 Red and Black
  • 原文地址:https://www.cnblogs.com/superzhaochao/p/6323671.html
Copyright © 2011-2022 走看看