码迷,mamicode.com
首页 > 编程语言 > 详细

剑指offer 合并两个排序的链表

时间:2017-09-02 20:43:10      阅读:213      评论:0      收藏:0      [点我收藏+]

标签:结果   改变   ptr   节点   get   blog   span   odi   int   

题目描述:

输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。
这题说明自己对链表还是不熟悉。
 
 1 /*
 2 struct ListNode {
 3     int val;
 4     struct ListNode *next;
 5     ListNode(int x) :
 6             val(x), next(NULL) {
 7     }
 8 };*/
 9 class Solution {
10 public:
11     ListNode* Merge(ListNode* pHead1, ListNode* pHead2) {
12         if(pHead1 == nullptr && pHead2 == nullptr){
13             return nullptr;
14         }
15         if(pHead1 == nullptr){
16             return pHead2;
17         }
18         if(pHead2 == nullptr){
19             return pHead1;
20         }
21         ListNode* pHead = new ListNode(0);
22         ListNode* head = pHead;
23         
24         while(pHead1 != nullptr && pHead2 != nullptr){
25             if(pHead1 -> val < pHead2 -> val){
26                 pHead -> next= pHead1;
27                 pHead1 = pHead1 -> next;
28             }
29             else{
30                 pHead -> next = pHead2;
31                 pHead2 = pHead2 -> next;
32             }
33             
34             pHead = pHead -> next;
35         }
36         if(pHead1 != nullptr){
37             pHead -> next = pHead1;
38         }
39         if(pHead2 != nullptr){
40             pHead -> next = pHead2;
41         }
42         return head -> next;
43     }
44 };

开始自己写的时候,将

while(pHead1 != nullptr && pHead2 != nullptr){
            if(pHead1 -> val < pHead2 -> val){
                pHead = pHead1;
                pHead1 = pHead1 -> next;
            }
            else{
                pHead = pHead2;
                pHead2 = pHead2 -> next;
            }
            
            pHead = pHead -> next;
        }

这样并没有改变结果,相当于将head指向了pHead1,并没有改变原来的指向关系。只有 p = p -> next,才能改变指向关系。新建一个dummy node 节点,可以避免很多麻烦的事情。

 

 
 

剑指offer 合并两个排序的链表

标签:结果   改变   ptr   节点   get   blog   span   odi   int   

原文地址:http://www.cnblogs.com/dingxiaoqiang/p/7467541.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!