明确题意
删除链表节点的问题。
删除方式:删除节点的是找到该结点的上一个结点node:node.next = node.next.next;
那么题目中要删除倒数第N个结点就意味着,我们找到倒数第N+1个结点位置即可。
解法
在单链表找到倒数第N的结点的方法可以是:
先找到正序第N个结点,两个指针分别指向头结点和第N个结点,循环直至第N个结点的next为null,head指向的即是倒数第N+1个结点位置。
Coding
通过题意直接在本地通过TDD(测试驱动开发)的方式写算法题。
首先编写测试用例如下:
package tdd.algo;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNull;