删除中间节点
题本身没难度,但是读题 还是挺难理解的
我在eclipse模拟了一下
public class T22 {
public static void deleteNode(ListNode node) {
node.val=node.next.val;
node.next=node.next.next;
}
public static void main(String[] args) {
ListNode node1 = new ListNode(1);
ListNode node2 = new ListNode(2);
ListNode node3 = new ListNode(3);
ListNode node4 = new ListNode(4);
ListNode node5 = new ListNode(5);
node1.next=node2;
node2.next=node3;
node3.next=node4;
node4.next=node5;
deleteNode(node3);
System.out.println(node1);
}
}
class ListNode{
int val;
ListNode next;
public ListNode(int x) {
val = x;
}
@Override
public String toString() {
return "ListNode [val=" + val + ", next=" + next + "]";
}
}
解法1
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
class Solution {
public void deleteNode(ListNode node) {
node.val=node.next.val;
node.next=node.next.next;
}
}
其实就是,我现在要输入的节点就是我要删除的,那我直接把下一个阶段给了我不就行了? 所以直接赋值过来。