C++关于链表的几个常见面试题

1、从尾到头打印链表

2、删除链表节点

3、链表中倒数第K个节点

4、反转链表

5、合并两个排序的链表

6、两个链表的第一个公共节点

最基本的先上,往链表的末尾添加节点:

ListNode *AddToTail(ListNode**pHead, int data)
{

//创建新节点将数据保存下来
 ListNode *pNew = new ListNode(); 
 pNew->m_data = data;
 pNew->m_pNext = NULL;

//头节点为空,则指向新节点,组成有一个节点的链表
 if (*pHead == NULL)
 {
  *pHead = pNew;
 }
 else
 {

//链表有部分数据的的话,定义指向头节点的指针偏移到链表的尾部
  ListNode *pNode = *pHead;
  while (pNode->m_pNext != NULL)
  {
   pNode = pNode->m_pNext;
  }

//在链表的尾部连接上新的节点
  pNode->m_pNext = pNew;
 }
 return *pHead;  //返回整条链表
}

猜你喜欢

转载自www.cnblogs.com/kevinsharif/p/9216807.html
今日推荐