Given preorder and inorder traversal of a tree, construct the binary tree.
Note:
You may assume that duplicates do not exist in the tree.
ps: 刚开始函数 createTreeHelper没使用&引用传递,提交时总是提示 Memory Limit Exceeded,加上后轻松AC。
Status: Memory Limit Exceeded
原因:
值传递(passl-by-value)过程中,被调函数的形式参数作为被调函数的局部变量处理,即在堆栈中开辟了内存空间以存放由主调函数放进来的实参的值,从而成为了实参的一个副本。值传递的特点是被调函数对形式参数的任何操作都是作为局部变量进行,不会影响主调函数的实参变量的值。
引用传递(pass-by-reference)过程中,被调函数的形式参数虽然也作为局部变量在堆栈中开辟了内存空间,但是这时存放的是由主调函数放进来的实参变量的地址。被调函数对形参的任何操作都被处理成间接寻址,即通过堆栈中存放的地址访问主调函数中的实参变量。正因为如此,被调函数对形参做的任何操作都影响了主调函数中的实参变量。
所以在递归的过程中,一直产生副本,而引用传递的是地址,只有四个字节,所以值传递容易造成了MLE错误。望各位大大拍砖![吐舌头](http://static.blog.csdn.net/xheditor/xheditor_emot/default/tongue.gif)