- 博客(12)
- 收藏
- 关注
原创 543. 二叉树的直径
3 ,取路径 [4,2,1,3] 或 [5,2,1,3] 的长度。这个路径的长度等于该节点左子树的深度加上右子树的深度。然后,我们递归地计算每个节点的直径,并保留最大值。是指树中任意两个节点之间最长路径的。可能经过也可能不经过根节点。的值,然后才返回节点的深度。语句之后的代码不会被执行到。在这两行代码中,首先更新。的值无法正确更新,因为。
2024-01-06 16:56:26
348
1
原创 94. 二叉树的中序遍历
当我们在`inorder`函数中对`index`进行操作时,我们需要传递指向`index`的指针,而不是传递`index`的值。这是因为我们希望在`inorder`函数中。改变`index`的值,并且希望这些改变在调用`inorder`函数的地方生效。在上面的代码中,我们使用整数指针来跟踪数组的当前索引位置。1)在这里,`int* index`表示一个整数指针。动态分配内存或者在函数中传递参数。整数指针用来存储内存地址。
2024-01-04 17:07:56
368
1
原创 21. 合并两个有序链表
2)合并后的第一个元素是从list1 第一个元素,还是list2第一个元素,提前判断。1)list1,list2为空要提前判断一下。
2024-01-04 15:14:47
344
1
原创 141. 环形链表
2)while循环内部的if-else语句出会现了问题。具体来说,if语句中的return true应该在while循环结束后才执行,以确保已经遍历完整个链表。此外,应该在循环结束后返回false,因为只有在循环内部找到了相遇点才会返回true。应该是:if (head==NULL ||head->next==NULL) return false;作为循环条件,这是不正确的,因为它会导致循环只执行一次,而不会对链表进行遍历。3)while循环条件存在的错误。在第一个while循环中,你使用了。
2024-01-04 12:48:03
327
1
原创 234. 回文链表
1. 在使用malloc函数分配内存时,应该使用sizeof(struct ListNode)而不是sizeof(struct ListNode*)。因为你想要分配的是ListNode结构体的大小,而不是指针的大小。如果将该链表反转后得到的链表与原链表相同,则该链表为回文链表。
2024-01-04 11:43:14
305
1
原创 206. 反转链表
1)pre指针所指向的节点应该是链表中的最后一个节点,而不是一个新创建的节点。因此,应该将pre初始化为NULL,而不是使用malloc创建一个新的节点。在reverseList函数中,这里不用malloc创建头节点,直接用pre指针来进行反转。2)另外,在返回值中,应该返回pre->next而不是pre,因为pre指向的是一个空节点,
2024-01-04 10:58:58
324
1
原创 160. 相交链表
请注意相交节点的值不为 1,因为在链表 A 和链表 B 之中值为 1 的节点 (A 中第二个节点和 B 中第三个节点) 是不同的节点。意思是:在链表中,每个节点都有一个值和指向下一个节点的指针,而在8后面,链表A和链表B指针 指向的值是相同的,即8,4,5。例1:listA = [4,1,8,4,5], listB = [5,6,1,8,4,5], intersectVal = 8。例2:listA = [1,9,1,2,4], listB = [3,2,4], intersectVal = 2,
2024-01-02 21:57:00
410
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人