Skip to content

后序遍历

递归法后序遍历二叉树

javascript
function recursivePostOrder(root) {
  const result = [];
  function helper(node) {
    if (node === null) return;
    helper(node.left);
    helper(node.right);
    result.push(node.val);
  }
  helper(root);
  return result;
}

Test Cases

javascript
const { generateTree } = require('../docs/algo/common/generator');
const { recursivePostOrder } = require('../docs/algo/tree/postOrder');

describe('postOrder', () => {
  const root = generateTree();
  it('recursive', () => {
    expect(recursivePostOrder(root)).toEqual([4, 5, 2, 3, 1]);
  });
});
shell
# /test/postorder.test.js
jest --testNamePattern=postorder

递归法后序遍历 N 叉树

javascript
function postorderNAryTree(root) {
  const result = []
  function helper(node) {
    if (node === null) {
      return;
    }
    for (const child of node.children) {
      helper(child)
    }
    result.push(node.val)
  }
  helper(root)
  return result
}