标签:node 检查 不能 leetcode nod div 连接 lists 初始化
141. Linked List Cycle
Given a linked list, determine if it has a cycle in it.
解题思路:
需要检查before和after隔一个的情况。因为除了开始时,如果检查的是before和after相邻,那么两个元素成环时,after跑到before后面,也就
不能检查到环了。
bool hasCycle(ListNode *head) {
if (head == NULL)
return false;
ListNode* before = head;
ListNode* after = before->next;
while (after != NULL && after->next != NULL) {
if (after == before)
return true;
before = before->next;
after = after->next->next;
}
return false;
}
21. Merge Two Sorted Lists
按升序合并两个链表
解题思路:
当l1和l2不空时,比较它们的表头值,放入小的,同时移动指针。当有一个链表为空时,剩下的那个必然是更大的部分,直接连接上就好。
最后,由于初始化时给了一个表头,所以要返回表头下一个点。
ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) {
ListNode* result = new ListNode(0);
ListNode* temp = result;
while (l1 != NULL && l2 != NULL) {
if (l1->val < l2->val) {
temp->next = l1;
l1 = l1->next;
} else {
temp->next = l2;
l2 = l2->next;
}
temp = temp->next;
}
if (l1 != NULL)
temp->next = l1;
else
temp->next = l2;
return result->next;
}
leetcode-26-exercise_linked-list
标签:node 检查 不能 leetcode nod div 连接 lists 初始化
原文地址:http://www.cnblogs.com/pxy7896/p/6866575.html