博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode——Construct Binary Tree from Inorder and Postorder Traversal
阅读量:5306 次
发布时间:2019-06-14

本文共 1730 字,大约阅读时间需要 5 分钟。

Question

Given inorder and postorder traversal of a tree, construct the binary tree.

Note:

You may assume that duplicates do not exist in the tree.

Solution

参考:

Code

/** * Definition for a binary tree node. * struct TreeNode { *     int val; *     TreeNode *left; *     TreeNode *right; *     TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public:    TreeNode* buildTree(vector
& inorder, vector
& postorder) { if (inorder.size() == 0 || postorder.size() == 0) return NULL; return ConstructTree(inorder, postorder, 0, inorder.size() - 1, 0, postorder.size() - 1); } TreeNode* ConstructTree(vector
& inorder, vector
& postorder, int in_start, int in_end, int post_start, int post_end) { int rootValue = postorder[post_end]; TreeNode* root = new TreeNode(rootValue); if (in_start == in_end) { if (post_start == post_end && inorder[in_start] == postorder[post_start]) return root; } int rootIn = in_start; while (rootIn <= in_end && inorder[rootIn] != rootValue) rootIn++; int leftPostLength = rootIn - in_start; if (leftPostLength > 0) { // 注意起点和终点的写法 root->left = ConstructTree(inorder, postorder, in_start, rootIn - 1, post_start, post_start + leftPostLength - 1); } if (leftPostLength < in_end - in_start) { root->right = ConstructTree(inorder, postorder, rootIn + 1, in_end, post_start + leftPostLength, post_end - 1); } return root; }};

转载于:https://www.cnblogs.com/zhonghuasong/p/7096358.html

你可能感兴趣的文章
简单的C#TCP协议收发数据示例
查看>>
labview图形和图表的类型
查看>>
Android 缓存
查看>>
[bzoj1910] [Ctsc2002] Award 颁奖典礼
查看>>
【科普】电池容量相同 为何笔记本电池的体积比手机大得多
查看>>
UEFI引导模式
查看>>
POJ3070 矩阵快速幂模板
查看>>
spring boot实现ssm(2)功能
查看>>
以最小代价解决同一apk不同资源定制共存问题
查看>>
第四代iPhone电池仍然不可以更换(转)
查看>>
ibatis中的符号#跟$区别
查看>>
QComboBox设置item height(行高)
查看>>
内存原理与PHP的执行过程
查看>>
P3175 [HAOI2015]按位或
查看>>
【HDU5909】Tree Cutting(FWT)
查看>>
多边形区域填充算法--扫描线填充算法(有序边表法) 有代码
查看>>
北京郊区房租面临下调压力 平均单位租金36.2元/平
查看>>
linux programing
查看>>
移动端H5实现图片上传
查看>>
House Robber
查看>>