LeetCode 21
Posted blfbuaa
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode 21相关的知识,希望对你有一定的参考价值。
已经已连续做了好几道题了,感觉停不下来了。突然来了兴趣了,这个题让我认为思路非常清晰,合并两个排序的链表。
我的思路例如以下:分别从两个链表里面摘取节点放到新的链表中。最后摘到一个也不留即可了。只是须要注意的是一些小细节。基本的注意事项例如以下:
1.两空(两个空的链表)
2.一空(一个链表为空一个部位空)
3.一个摘完了,另外的可能还有节点(这个须要好好注意一下,非常easy出错的)
好了,见代码吧:
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */ class Solution { public: ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) { //相似于从两个链表上取下节点,放到newHead中去 if(l1 == NULL && l2 == NULL) { return NULL; } if(l1 == NULL) { return l2; } if(l2 == NULL) { return l1; } ListNode * newHead=NULL; if(l1->val <= l2->val) { newHead=l1; l1=l1->next; } else { newHead=l2; l2=l2->next; } newHead->next = NULL; ListNode *cur = newHead; while(l1 && l2) { if(l1->val <= l2->val) { cur->next = l1; l1=l1->next; } else { cur->next = l2; l2 = l2->next; } cur=cur->next; cur->next=NULL; } if(l1) {//说明 l2 完了。仅仅剩 l1 了 cur->next = l1; } if(l2) {//说明 l1 完了,仅仅剩 l2 了 cur->next=l2; } return newHead; } };结果例如以下:
以上是关于LeetCode 21的主要内容,如果未能解决你的问题,请参考以下文章
14.VisualVM使用详解15.VisualVM堆查看器使用的内存不足19.class文件--文件结构--魔数20.文件结构--常量池21.文件结构访问标志(2个字节)22.类加载机制概(代码片段
片段中的 Asynctask 未到达 onPostExecute
LeetCode810. 黑板异或游戏/455. 分发饼干/剑指Offer 53 - I. 在排序数组中查找数字 I/53 - II. 0~n-1中缺失的数字/54. 二叉搜索树的第k大节点(代码片段