剑指offer_24 反转链表

定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。

示例:

输入: 1->2->3->4->5->NULL
输出: 5->4->3->2->1->NULL

简单题

但是却在一些地方出了问题

 1 struct ListNode* reverseList(struct ListNode* head){
 2      struct ListNode* pre = NULL;
 3      struct ListNode* cur = head;
 4      if(head && head->next){
 5      struct ListNode* flag = head->next;
 6      while(cur!=pre){   //这个判定条件错了好久遍,画图理解
 7      cur->next = pre;
 8      pre = cur;
 9      cur = flag;
10      if(cur->next)  // 主要是如果值不存在的话,c语言不允许这样操作
11      flag = cur->next;
12      }
13      }
14      else return head;
15 
16      return cur;
17 }

 

posted @ 2022-04-06 20:27  YoungPzz  阅读(15)  评论(0)    收藏  举报