/** * 输入一个链表,反转链表后,输出新链表的表头。 * 注意:需求有两个,1,反转链表,2.输出新链表表头 */ public class Solution6 { public static void main(String[] args) { Node node = new Node(1,new Node(2,new Node(3,new Node(4,new Node(5,null))))); node = solution(node); while (null != node) { System.out.println(node.data); node = node.next; } } public static Node solution(Node node) { if (null == node || null == node.next) return node; Node nodepre = node;//定义前一元素 Node nodeaft = null;//定义后一元素 int i = 0; while (null != node.next) { nodeaft = node.next;//首先拿到后元素的指针 //reverse if (i >0){ node.next = nodepre;//next属性指向前一个元素 } if(i == 0) node.next = null;//头元素变为尾元素 //最后一个元素 if (null == nodeaft.next){ nodeaft.next = node; return nodeaft; } nodepre = node;//当前元素为下一个元素的前元素 node = nodeaft;//获取下一个元素 i++; } return node; } }
输入一个链表,反转链表后,输出新链表的表头。
最新推荐文章于 2021-05-19 18:26:33 发布