前序遍历、中序遍历、后序遍历代码实现——迭代与非迭代方式

柔情只为你懂 2022-05-12 14:42 283阅读 0赞

迭代方式实现

前序遍历——迭代

  1. public static void preOrder(TreeNode node){
  2. if(node==null) return;
  3. System.out.println(node.getData()+" ");
  4. preOrder(node.left);
  5. preOrder(node.right);
  6. }

中序遍历——迭代

  1. public static void inOrder(TreeNode node){
  2. if(node==null) return;
  3. inOrder(node.left);
  4. System.out.println(node.getData()+" ");
  5. inOrder(node.right);
  6. }

后序遍历——迭代

  1. public static void postOrder(TreeNode node){
  2. if(node==null) return;
  3. postOrder(node.left);
  4. postOrder(node.right);
  5. System.out.println(node.getData()+" ");
  6. }

树的遍历——非迭代

  1. public void fistOrder(TreeNode node){ //前序遍历
  2. if(node == null){
  3. return;
  4. }
  5. Stack<TreeNode> stack = new Stack<TreeNode>();
  6. stack.push(node);
  7. while(!stack.isEmpty()){
  8. TreeNode n = stack.pop();//弹出根结点
  9. System.out.println("nonRecOrder data"+n.getData());
  10. if(n.right!=null) stack.push(n.right);
  11. if(n.left!=null) stack.push(n.left);
  12. }
  13. }

另外两种方式参考前序遍历方式,只需简单修改即可。

发表评论

表情:
评论列表 (有 0 条评论,283人围观)

还没有评论,来说两句吧...

相关阅读