- 博客(7)
- 收藏
- 关注
原创 2020-08-17
实现一个函数,检查二叉树是否平衡。在这个问题中,平衡树的定义如下:任意一个节点,其两棵子树的高度差不超过 1。 示例 1:给定二叉树 [3,9,20,null,null,15,7] 返回 true 。 示例 2:给定二叉树 [1,2,2,3,3,null,null,4,4] 返回 false 。 int max(int a,int b){ return a>b?a:b; } int maxDepth(struct TreeNode* root,bool *p_tmp)...
2020-08-17 18:27:35
97
原创 2020-08-13
编写一个函数,检查输入的链表是否是回文的。 示例 1: 输入: 1->2 输出: false 示例 2: 输入: 1->2->2->1 输出: true /** * Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode *next; * }; */ bool isPalindrome(struct ListNode*
2020-08-13 10:12:48
77
原创 倒序输出链表2020-08-11
输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。 示例 1: 输入:head = [1,3,2] 输出:[2,3,1] /** * Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode *next; * }; */ /** * Note: The returned array must be malloced, assume .
2020-08-11 16:43:26
102
原创 另类的删除结点2020-08-11
请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点。传入函数的唯一参数为 要被删除的节点 。 void deleteNode(struct ListNode* node) { node->val = node->next->val; node->next = node->next->next; } 并没有给head,不要陷入思维定式,明摆的给你要删除的结点,将此结点的值换成下一结点的值,然后删除下一结点,曲线救国。 ...
2020-08-11 16:38:00
94
原创 数据结构(链表双指针)2020-08-10
实现一种算法,找出单向链表中倒数第 k 个节点。返回该节点的值。 输入:1->2->3->4->5 和 k = 2 输出: 4 方法一: int kthToLast(struct ListNode* head, int k){ int count=0; int i; int res; struct ListNode *p = head; while(p!=NULL){ p = p->next; c
2020-08-10 17:32:55
70
原创 数据结构(链表双指针)2020-08-10
给定两个(单向)链表,判定它们是否相交并返回交点。请注意相交的定义基于节点的引用,而不是基于节点的值。换句话说,如果一个链表的第k个节点与另一个链表的第j个节点是同一节点(引用完全相同),则这两个链表相交。 输入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,0,1,8,4,5], skipA = 2, skipB = 3输出:Reference of the node with value = 8输入解释:相交节点的值为 8 (注意,如果两个列表相交
2020-08-10 10:13:13
103
原创 PTA数据结构(链表)
PTA数据结构(链表) 本题要求实现一个函数,将两个链表表示的递增整数序列合并为一个非递减的整数序列。 函数接口定义: List Merge( List L1, List L2 ); 其中List结构定义如下: typedef struct Node PtrToNode; struct Node { ElementType Data; / 存储结点数据 / PtrToNode Next; / 指向下一个结点的指针 / }; typedef PtrToNode List; / 定义单链表类型 */ L1和
2020-08-10 08:55:09
936
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人