输入一个链表,反转链表后,如何输出新链表的表头呢?
head无数据版本:
public ListNode ReverseList(ListNode head) {
if(head.next == null || head.next.next == null) {
return head;
}
//辅助指针,遍历原来的链表
ListNode cur = head.next.next;
ListNode next = null; //指向cur的下一个节点 防止断链
ListNode reverseHead = null;
while( cur != null) {
next = cur.next;//暂时保存后面有用
cur.next = reverseHead.next;//cur的下一个节点指向新链表的最前端
reverseHead.next = cur;//cur连接到新的链表最顶端
cur = next;
}
return reverseHead;
}
}
head有数据版本:
public ListNode ReverseList(ListNode head) {
if(head==null)
return null;
ListNode pre = null;
ListNode next = null;
while(head!=null){
next = head.next;
head.next = pre;
pre = head;
head = next;
}
return pre;
}
}
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。