c语言sscanf函数的用法是什么
214
2022-12-01
Java反转单链表
class Node { private int data; private Node nextNode; public Node(int data) { this.data = data; } public int getData() { return data; } public void setData(int data) { this.data = data; } public Node getNextNode() { return nextNode; } public void setNextNode(Node nextNode) { this.nextNode = nextNode; }}public class ReverseSingleList { public static Node reverse(Node head) { if (null == head || null == head.getNextNode()) { return head; } Node reversedHead = reverse(head.getNextNode()); head.getNextNode().setNextNode(head); head.setNextNode(null); return reversedHead; } public static Node reverse2(Node head) { if (null == head || null == head.getNextNode()) { return head; } Node node1 = head; Node node2 = head.getNextNode(); head.setNextNode(null); while (null != node2) { node1 = node2; node2 = node2.getNextNode(); node1.setNextNode(head); head = node1; } return head; } public static void main(String[] args) { Node head = new Node(0); Node cur = head; Node tmp = null; // 构造一个长度为10的链表,保存头节点对象head for (int i = 1; i < 10; i++) { tmp = new Node(i); cur.setNextNode(tmp); cur = tmp; } //打印反转前的链表 Node h = head; while (null != h) { System.out.print(h.getData() + " "); h = h.getNextNode(); } //调用反转方法 //head = reverse(head); head = reverse2(head); System.out.println("\n**************************"); //打印反转后的结果 while (null != head) { System.out.print(head.getData() + " "); head = head.getNextNode(); } }}
运行结果:
0 1 2 3 4 5 6 7 8 9
**************************
9 8 7 6 5 4 3 2 1 0
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~