145. Binary Tree Postorder Traversal
Leetcode
題目
Input: root = [1,null,2,3]
Output: [3,2,1]Input: root = []
Output: []Input: root = [1]
Output: [1]解答
參考資料
Last updated
Input: root = [1,null,2,3]
Output: [3,2,1]Input: root = []
Output: []Input: root = [1]
Output: [1]Last updated
var postorderTraversal = function(root) {
if(root === null) return [];
const result = [];
const postorder = (node) => {
if (node.left) postorder(node.left);
if (node.right) postorder(node.right);
result.push(node.val);
};
postorder(root);
return result;
};var postorderTraversal = function(root) {
if(root === null) return [];
const result = [];
const stack = [root];
while(stack.length) {
const node = stack.pop();
result.push(node.val);
// 左邊先放入 stack 的,最後會是排序在前面的
// postorder left -> right -> root
// 這裡的 stack 反向放 root -> right -> left
if (node.left) stack.push(node.left);
if (node.right) stack.push(node.right);
}
// 倒轉過來
return result.reverse();
};