node节点:
public class Node { Node next; Integer value; public Node(Integer value) { this.value = value; } public Node addNode(Integer value) { Node node = new Node(value); this.next = node; return node; } public Node(Integer value, Node next) { this.next = next; this.value = value; } public Node getNext() { return next; } public void setNext(Node next) { this.next = next; } public Integer getValue() { return value; } public void setValue(Integer value) { this.value = value; } @Override public String toString() { return "Node{" + "next=" + next + ", value=" + value + '}'; } }
main函数:
Node node1 = new Node(1); Node node2 = node1.addNode(2); Node node3 = node2.addNode(3); Node node4 = node3.addNode(4); Node node5 = node4.addNode(5); Node node6 = node5.addNode(6); Node node7 = node6.addNode(7);
1、循环算法:
private Node reverseNode(Node node1) { Node pre = null; Node curr = node1; Node next; while (curr != null) { next = curr.next; curr.next = pre; pre = curr; curr = next; } return pre; }
2、递归算法:
private Node reverseNode1(Node head) { if(head==null || head.next==null){ return head; } Node result = reverseNode1(head.next); head.next.next=head; head.next=null; return result; }
标签:Node,head,return,反转,value,next,链表,算法,public From: https://www.cnblogs.com/niun/p/17138205.html