CodingInterviewChinese2 icon indicating copy to clipboard operation
CodingInterviewChinese2 copied to clipboard

面试题7:重建二叉树

Open SunshlnW opened this issue 5 years ago • 6 comments

66-67行代码 if(rootInorder == endInorder && *rootInorder != rootValue) throw std::exception("Invalid input."); 这句没有用吧!

SunshlnW avatar Jul 27 '19 05:07 SunshlnW

66-67行代码 if(rootInorder == endInorder && *rootInorder != rootValue) throw std::exception("Invalid input."); 这句没有用吧!

只有一个节点且这个节点还和记录的根节点rootValue不一致,就是非法输入的意思吧

CoderLeonidas avatar Oct 06 '19 04:10 CoderLeonidas

66-67行代码 if(rootInorder == endInorder && *rootInorder != rootValue) throw std::exception("Invalid input."); 这句没有用吧!

判断前序遍历找到的根的值 跟中序遍历里的根的值 是否相等吧

L-Xu-L avatar Feb 24 '20 13:02 L-Xu-L

66-67行代码 if(rootInorder == endInorder && *rootInorder != rootValue) throw std::exception("Invalid input."); 这句没有用吧!

首先,这两句是在第61和62行。 个人认为应该把第61句if(rootInorder == endInorder && *rootInorder != rootValue)改为if(rootInorder > endInorder),处理在中序数组中未找到root的情况。

EternalWang avatar May 28 '20 11:05 EternalWang

66-67行代码 if(rootInorder == endInorder && *rootInorder != rootValue) throw std::exception("Invalid input."); 这句没有用吧!

首先,这两句是在第61和62行。 个人认为应该把第61句if(rootInorder == endInorder && *rootInorder != rootValue)改为if(rootInorder > endInorder),处理在中序数组中未找到root的情况。

赞同!0.0 刚看到书的这块,觉得有点小问题。

gyzcool avatar Jan 16 '21 06:01 gyzcool

刚才看到这块也觉得有问题,61行改成if(rootInorder > endInorder)或者58行改成while(rootInorder < endInorder && *rootInorder != rootValue)。不然感觉没办法处理找不到根的情况。

lurenxiao1998 avatar Feb 03 '21 13:02 lurenxiao1998

刚才看到这块也觉得有问题,61行改成if(rootInorder > endInorder)或者58行改成while(rootInorder < endInorder && *rootInorder != rootValue)。不然感觉没办法处理找不到根的情况。

虽然这个地方跑代码没有问题的,如果rootInorder > endInorder。那么在构建右子树的时候就会抛出异常。但是这个地方应该是写错了,不然太奇怪了。

lurenxiao1998 avatar Feb 04 '21 02:02 lurenxiao1998