zoukankan      html  css  js  c++  java
  • 7 二叉树的操作 四种遍历

     1 package com.wwj.cn;
     2 
     3 public interface TreeInterf {
     4     void PreOrderTraverse(TreeNode treeNode);// 前序遍历 递归
     5 
     6     void InOrderTraverse(TreeNode treeNode);// 中序遍历 递归
     7 
     8     void PostOrderTraverse(TreeNode treeNode);// 后序遍历 递归
     9 
    10     void LevelIterator(TreeNode treeNode);// 层序遍历
    11 
    12 }
    13 
    14 
    15 
    16 
    17 package com.wwj.cn;
    18 
    19 import java.util.LinkedList;
    20 
    21 public class TreeOperation implements TreeInterf {
    22 
    23     @Override
    24     public void PreOrderTraverse(TreeNode treeNode) {
    25         // TODO Auto-generated method stub
    26         if (treeNode == null) {
    27             return;
    28         }
    29         System.out.println(treeNode.val);
    30         PreOrderTraverse(treeNode.leftchild);
    31         PreOrderTraverse(treeNode.rightchild);
    32     }
    33 
    34     @Override
    35     public void InOrderTraverse(TreeNode treeNode) {
    36         if (treeNode == null) {
    37             return;
    38         }
    39         InOrderTraverse(treeNode.leftchild);
    40         System.out.println(treeNode.val);
    41         InOrderTraverse(treeNode.rightchild);
    42 
    43     }
    44 
    45     @Override
    46     public void PostOrderTraverse(TreeNode treeNode) {
    47         if (treeNode == null) {
    48             return;
    49         }
    50         PostOrderTraverse(treeNode.leftchild);
    51 
    52         PostOrderTraverse(treeNode.rightchild);
    53 
    54         System.out.println(treeNode.val);
    55 
    56     }
    57 
    58     @Override
    59     public void LevelIterator(TreeNode treeNode) {// 利用队列
    60         if (treeNode == null) {
    61             return;
    62         }
    63         LinkedList<TreeNode> queue = new LinkedList<>();
    64         TreeNode currentNode = null;
    65         queue.offer(treeNode);
    66         while (!queue.isEmpty()) {
    67             currentNode = queue.poll();
    68             System.out.println(currentNode.val);
    69 
    70             if (currentNode.leftchild != null) {
    71                 queue.offer(currentNode.leftchild);
    72             }
    73 
    74             if (currentNode.rightchild != null) {
    75                 queue.offer(currentNode.rightchild);
    76             }
    77 
    78         }
    79 
    80     }
    81 
    82 }
  • 相关阅读:
    webpack 打包报 ERROR in static/js/vendor.2eff2b5a1d36f4b7f033.js from UglifyJs
    常见重构技巧
    Java常见重构技巧
    Python写基于非线性优化的2D-SLAM系统(已开源)
    分享一个免费开源压缩视频软件!!!【视频压缩后质量还可以】
    AJAX之超时与网络异常处理
    HTTP
    Gin多次读取body
    高效的数据压缩编码方式 Protobuf
    TCP报文之-tcp dup ack 、tcp Out-of-Order
  • 原文地址:https://www.cnblogs.com/wwjldm/p/6909547.html
Copyright © 2011-2022 走看看