二叉树递归遍历的图示

以二叉树的后序遍历为例。

后序遍历的递归代码如下

class Solution {
    List ans = new LinkedList<>();
    public List postorderTraversal(TreeNode root) {
        if (root == null) return ans;
        postorder(root);
        return ans;
    }
    public void postorder(TreeNode root)
    {
        if (root == null) return;
        
        //ans.add(root.val); // 前序遍历
        postorder(root.left);
        //ans.add(root.val); // 中序遍历
        postorder(root.right);
        ans.add(root.val); // 后序遍历
    }
}

add()函数的位置决定了遍历的方式。

递归执行过程如图
二叉树递归遍历的图示_第1张图片
最终遍历的结果为:4>5>2>6>7>3>1

你可能感兴趣的:(算法,Java)