【链表】- 删除链表的中间节点和a/b处的节点

来源:互联网 发布:安卓访问windows共享 编辑:程序博客网 时间:2024/06/07 02:25

【题目】

给定链表的头节点head,实现删除链表的中间节点的函数

给定链表的头节点head,整数a和b,实现删除位于a/b处节点的函数

//删除链表的中间节点public class Node{public int value;public Node next;public Node(int data){this.value = data;}}public Node removeMidNode(Node head){if(head == null || head.next == null){return head;}if(head.next.next == null){return head.next;}Node pre = head;Node cur = head.next.next;while(cur.next != null && cur.next.next != null){pre = pre.next;cur = cur.next.next;}pre.next = pre.next.next;return head;}


//删除链表的a/b处的节点public Node removeByration(Node head, int a, int b){if(a < 1 || a > b){return head;}int n = 0;Node cur = head;while(cur != null){n++;cur = cur.next;}n = (int)Math.ceil(((doule)(a*n))/(double)b);if(n==1){head = head.next;}if(n>1){cur = head;while(--n != 1){cur = cur.next;}cur.next = cur.next.next;}return head;}



阅读全文
0 0
原创粉丝点击