单链表翻转
Posted 戎码之路
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了单链表翻转相关的知识,希望对你有一定的参考价值。
方法一:通过三个指针来分别指向链表的当前节点、上一节点、下一节点
分别为P1,P2,P3。
上代码:
static class Node{ int val; Node next; } public static Node reverse(Node node){ if (node==null||node.next==null){ return null; } Node current,pnext,prev; current=node.next; pnext=current.next; current.next=null; while (pnext!=null){ prev=pnext.next; pnext.next=current; current=pnext; pnext=prev; } node.next=current; return node; }
方法二:
static Node reverse2(Node node){ if (node==null||node.next==null){ return null; } Node current,pnext; current=node.next; while (current.next!=null){ pnext=current.next; current.next=pnext.next; pnext.next=node.next; node.next=pnext; } return node; }
以上是关于单链表翻转的主要内容,如果未能解决你的问题,请参考以下文章