我试图制作一个简单的链接列表程序,当我试图从列表中弹出第一个元素时,它没有弹出,它仍然是列表中的第一个元素,请帮我解决这个错误。
以下是必需的文件和主要代码。 感谢。
var mainSchema = new Schema({
mainProperty: {type: String, required: true},
subs: {
type: [subSchema],
required: true,
validate: [notEmpty, "Custom error message"]
}
});
function notEmpty(arr) {
return arr.length > 0;
}
答案 0 :(得分:2)
错误位于getsize
函数的以下行:
while( (temp->next) != NULL){
这里temp
是一个用另一个指针s
的值初始化的指针。 (temp和s指向同一地址)。但是,在将s
传递给getsize
之前,您尚未将任何内存分配给next
。因此,访问stack
成员会导致seg错误。
<强>解决方案强>:
在让用户选择操作create
之前,请初始化足够的内存。 stack.c中有一个create
函数,用于为堆栈分配内存。但你甚至没有称这个功能。因此,要修复错误,只需在程序开头调用.c
即可。
此外,您不应包含private static boolean pathSum(TreeNode root, final int sum, int sumSoFar) {
if (root == null) return false;
if (root.left == null && root.right == null) return sumSoFar + root.val == sum;
return pathSum(root.left, sum, sumSoFar + root.val) || pathSum(root.right, sum, sumSoFar + root.val);
}
文件。您应该包含头文件* .h。 (作为一种良好做法)。