面试中常见链表问题1:合并两个有序链表
2016-06-06 09:13
453 查看
给定两个有序链表,把这两个链表合并为一个有序链表。比如链表1->3->5->NULL和链表2->4->6->NULL。合并以后为1->2->3->4->5->6->NULL。 方法一:循环迭代方法
ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) { ListNode *head = new ListNode(0); ListNode *p = head; while(l1 != NULL && l2 != NULL) { if(l1->val < l2->val) { p->next = l1; l1 = l1->next; } else { p->next = l2; l2 = l2->next; } p = p->next; } if(l1 != NULL) { p->next = l1; } if(l2 != NULL) { p->next = l2; } return head->next; }方法二:递归方法
ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) { if(l1 == NULL) { return l2; } if(l2 == NULL) { return l1; } if(l1->val < l2->val) { l1->next = mergeTwoLists(l1->next,l2); return l1; } else { l2->next = mergeTwoLists(l1,l2->next); return l2; } }
相关文章推荐
- JAVA_基础面试题
- Android面试题二
- 程序员批注《语言学教程》——第三章 从语素到短语
- 脱颖而出! 面试英语的一些小技巧
- 程序员常会用到的软件有哪些
- js操作符类型转换大全(前端面试题之操作符)
- 总结前端面试过程中最容易出现的问题
- Freelancer自由工作离我们还有多远?
- 黑马程序员——Java基础---面向对象之多态抽象类接口
- 黑马程序员——Java基础---面向对象代码块和继承和this和super和重写和重载和final
- 面试题17:合并两个排序的链表
- Hibernate常见面试知识点
- JAVA程序员必看的15本书
- 软件工程师的职业规划
- 面试小问题
- 适合程序员的画图技法
- 适合程序员的画图技法
- 鸡汤君_一个老程序员的建议66
- 面试题——找单独数字
- 面试(一)