美文网首页
二叉树的后续遍历

二叉树的后续遍历

作者: momdiemg | 来源:发表于2019-11-14 10:09 被阅读0次

递归

public List<Integer> preorderTraversal(TreeNode root) {
        if(root == null) return new ArrayList<Integer>();
        
        List<Integer> list = new ArrayList<Integer>();
        preorderTraversal(root, list);
        return list;
    }
    
    public List<Integer> preorderTraversal(TreeNode root, List<Integer> list) {
        
       
        if(root.left != null)
            preorderTraversal(root.left, list);
         list.add(root.val);
        if(root.right != null)
            preorderTraversal(root.right, list);
        return list;
    }

迭代

public List<Integer> postorderTraversal(TreeNode root) {
    Stack<TreeNode> stack = new Stack<>();
    LinkedList<Integer> output = new LinkedList<>();
    if (root == null) {
      return output;
    }

    stack.push(root);
    while (!stack.isEmpty()) {
      TreeNode node = stack.pop();
      output.addFirst(node.val);
      if (node.left != null) {
        stack.push(node.left);
      }
      if (node.right != null) {
        stack.push(node.right);
      }
    }
    return output;
  }

相关文章

  • 二叉树遍历

    请递归,非递归方式分别前序遍历,中序遍历,后续遍历二叉树

  • 二叉树相关算法

    二叉树定义 前序遍历(中序遍历、后续遍历只需要调整append的顺序即可) 层序遍历 二叉树的最大深度 对称二叉树...

  • 二叉树遍历java,非递归、层次。

    /** * 前序遍历 * 递归 */ /*** 前序遍历* 非递归*/ 后续遍历非递归 二叉树层次遍历基于java...

  • 二叉树的三种遍历(前序/中序/后序)

    参考博客 二叉树的非递归后续遍历

  • 算法精选题总结之二叉树类

    1.二叉树的中序遍历中序遍历的迭代方法中序遍历的递归方法2.二叉树前序遍历3.二叉树后续遍历4.二叉树的最近公共祖...

  • 剑指offer 面试题6:重建二叉树

    题目:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。 解法:前序遍历:根左右中序遍历:左根右后续遍历:...

  • 二叉树(python实现)

    一、二叉树的几种遍历方式 1、前序遍历(根——>左——>右) 2、中序遍历(左——>根——>右) 3、后续遍历(左...

  • 二叉树的非前、中、后序遍历

    本篇文章介绍二叉树中除了前序、中序、后续遍历以外的其他一些遍历方式。 首先,还是定义树的节点如下 按层遍历二叉树 ...

  • 一般二叉树普通二叉树,前、中、后序遍历以及搜索 顺序存储二叉树将数组以树的思想标识,包括前、中、后续遍历 线索化二...

  • 二叉树的问题

    二叉树的前序遍历是:-+abc*de/f,后续遍历是:bad*c+f/e-,则层序遍历和中序遍历依次为: A. -...

网友评论

      本文标题:二叉树的后续遍历

      本文链接:https://www.haomeiwen.com/subject/guwlictx.html