链表类
package com.sk.Tree;
public class ListNode {
int val;
ListNode next;
ListNode() {}
ListNode(int x) { val = x; }
ListNode(int val, ListNode next) {
this.val = val;
this.next = next;
}
public int getVal() {
return val;
}
public void setVal(int val) {
this.val = val;
}
public ListNode getNext() {
return next;
}
public void setNext(ListNode next) {
this.next = next;
}
@Override
public String toString() {
return "ListNode{" +
"val=" + val +
", next=" + next +
'}';
}
}
测试类
package com.sk.Tree;
import java.util.LinkedHashMap;
public class ListDemo {
public static void main(String[] args) {
int a[]={1,3,4,5,7};
System.out.println(endInsert(a).toString());
}
/**
* *尾插法
* @param nums
* @return
*/
public static ListNode headInsert(int [] nums){
ListNode node = new ListNode(-1);
ListNode temp = node;
for (int num : nums) {
ListNode cur = new ListNode(num);
temp.next = cur;
temp=temp.next;
}
return node.next;
}
/**
* *头插法
* @param nums
* @return
*/
public static ListNode endInsert(int []nums){
ListNode node = new ListNode(-1);
ListNode cur;
for (int num : nums) {
ListNode temp = new ListNode(num);
cur = node.next;
temp.next = cur;
node.next = temp;
}
return node.next;
}
}
反转链表
public ListNode reverseList(ListNode head) {
ListNode ans = new ListNode(0);
ListNode temp = head;
while (temp != null) {
ListNode cur = ans.next;
ListNode node = new ListNode(temp.val);
ans.next = node;
node.next = cur;
temp = temp.next;
}
return ans.next;
}