题目:
给定一个二叉树,返回他的后序遍历的序列。
后序遍历是值按照 左节点->右节点->根节点 的顺序的遍历。
数据范围:二叉树的节点数量满足1≤n≤100 ,二叉树节点的值满足1≤val≤100 ,树的各节点的值各不相同
样例图:
1
\
2
/
3
示例1
输入:
{1,-1,2,3}
返回值:
[3,2,1]
#include<iostream>
#include<vector>
using namespace std;
struct Treenode
{
int val;
struct Treenode* left;
struct Treenode* right;
Treenode(int x):val(x),left(nullptr),right(nullptr){}
};
//建立二叉树函数
void creatTree(Treenode *root,vector<int> &num,int len,int a)
{
if (len == 0||a>=len)
return;
//左孩子
if (2 * a + 1 < len && num[2 * a + 1] != -1)
{
root->left = new Treenode(num[2 * a + 1]);
creatTree(root->left, num, len, 2 * a + 1);
}
//右孩子
if (2 * a + 2 < len && num[2 * a + 1] != -1)
{
root->right = new Treenode(num[2 * a &#