当前位置:   article > 正文

【面试题17】将两个有序的链表合并_本题要求实现一个合并两个有序链表的简单函数。链表结点定义如下: struct listnod

本题要求实现一个合并两个有序链表的简单函数。链表结点定义如下: struct listnod
  1. struct ListNode {
  2. int val;
  3. struct ListNode *next;
  4. ListNode(int x) :
  5. val(x), next(NULL) {}//成员中有指针,一定要重载构造函数
  6. ListNode(){}//保留默认构造函数
  7. };
  8. //创建一个链表结点
  9. ListNode* CreateListNode(int value)
  10. {
  11. ListNode *pNode = new ListNode();
  12. pNode->val = value;
  13. pNode->next = NULL;
  14. return pNode;
  15. }
  16. //往链表末尾添加结点
  17. /*
  18. 注意这里pHead是一个指向指针的指针,在主函数中一般传递的是引用。
  19. 因为如果要为链表添加结点,那么就会修改链表结构,所以必须传递引用才能够保存修改后的结构。
  20. */
  21. void AddToTail(ListNode** pHead, int value)
  22. {
  23. ListNode* pNew = new ListNode();//新插入的结点
  24. pNew->val = value;
  25. pNew->next = NULL;
  26. if (*pHead == NULL)//空链表
  27. {
  28. *pHead = pNew;
  29. }
  30. else
  31. {
  32. ListNode* pNode = *pHead;
  33. while (pNode->next != NULL)
  34. pNode = pNode->next;
  35. pNode->next = pNew;
  36. }
  37. }
  38. //遍历链表中的所有结点
  39. void PrintList(ListNode* pHead)
  40. {
  41. ListNode *pNode = pHead;
  42. while (pNode != NULL)
  43. {
  44. cout << pNode->val << " ";
  45. pNode = pNode->ne
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/533021
推荐阅读
相关标签
  

闽ICP备14008679号