void makeTree() { cur = postorder.size() - 1; head = new node(postorder[cur]); int pos = inorder.find(postorder[cur]); cur--; bulidRight(pos + 1, inorder.size(), head); bulidLeft(0, pos, head); } void bulidLeft(int beg, int end, node* parent) { if(beg >= end || cur < 0) return; parent->leftChild = new node(postorder[cur]); int pos = inorder.find(postorder[cur]); cur--; bulidRight(pos + 1, end, parent->leftChild); bulidLeft(beg, pos, parent->leftChild); } void bulidRight(int beg, int end, node* parent) { if(beg >= end || cur < 0) return; parent->rightChild = new node(postorder[cur]); int pos = inorder.find(postorder[cur]); cur--; bulidRight(pos + 1, end, parent->rightChild); bulidLeft(beg, pos, parent->rightChild); }
中后序--->前
最新推荐文章于 2024-01-03 01:09:25 发布
800

被折叠的 条评论
为什么被折叠?



