⬆︎
×

[LC] 0145 Binary Tree Postorder Traversal

Hyplus目录

Java

public class TreeNode {
    int val;
    TreeNode left;
    TreeNode right;

    TreeNode() {
    }

    TreeNode(int val) {
        this.val = val;
    }

    TreeNode(int val, TreeNode left, TreeNode right) {
        this.val = val;
        this.left = left;
        this.right = right;
    }
}
import java.util.ArrayList;
import java.util.List;

/**
 * <a href="https://leetcode.cn/problems/binary-tree-postorder-traversal/">Binary Tree Postorder Traversal</a>
 * 栈;树;深度优先搜索;二叉树
 */
class Solution {
    public void dfs(List<Integer> list, TreeNode root) {
        if (root != null) {
            dfs(list, root.left);
            dfs(list, root.right);
            list.add(root.val);
        }
    }

    public List<Integer> postorderTraversal(TreeNode root) {
        List<Integer> list = new ArrayList<>();
        dfs(list, root);
        return list;
    }
}

C++

#ifndef LEETCODE_SOLUTIONS_TREENODE_H
#define LEETCODE_SOLUTIONS_TREENODE_H

struct TreeNode {
    int val;
    TreeNode *left;
    TreeNode *right;

    TreeNode() : val(0), left(nullptr), right(nullptr) {}

    TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}

    TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
};

#endif //LEETCODE_SOLUTIONS_TREENODE_H
#include <iostream>
#include "TreeNode.h"

using namespace std;

class Solution {
public:
    void DFS(TreeNode *u, vector<int> &res) {
        if (u) {
            DFS(u->left, res);
            DFS(u->right, res);
            res.push_back(u->val);
        }
    }

    vector<int> postorderTraversal(TreeNode* root) {
        vector<int> res;
        DFS(root, res);
        return res;
    }
};

发表评论