#19 Remove Nth Node From End of List
来源:互联网 发布:怎么查4g网络覆盖 编辑:程序博客网 时间:2024/05/17 05:59
题目:
Given a linked list, remove the nth node from the end of list and return its head.
For example,
Given linked list: 1->2->3->4->5, and n = 2. After removing the second node from the end, the linked list becomes 1->2->3->5.
Note:
Given n will always be valid.
Try to do this in one pass.
题解:
还是Easy的难度。要求one pass,two pointers可以很好解决:left和right相差n,当right到结尾的时候,left就是要去掉的链表节点。另外需要记录要去掉的节点的前一节点。
特殊情况有一种:linked list 只有一个节点,且n=1.
我没注意的情形:去掉的是头结点的情况!!!
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */public class Solution { public ListNode removeNthFromEnd(ListNode head, int n) { if(head.next==null)return null; ListNode left=head; ListNode right=head; ListNode pre=null; int diff=0; while(right!=null){ if(diff<n){ right=right.next; diff++; } else{ right=right.next; pre=left; left=left.next; } } if(left==head)head=head.next;//这句开始没想到,Runtime error else pre.next=left.next; return head; }}
PS:我加上那句中文注释再提交,运行时间从280ms直接到460ms,orz。
0 0
- Remove Nth Node From End of List
- Remove Nth Node From End of List
- Remove Nth Node From End of List
- Remove Nth Node From End of List
- Remove Nth Node from End of List
- Remove Nth Node From End of List
- Remove Nth Node From End of List
- Remove Nth Node From End of List
- Remove Nth Node From End of List
- Remove Nth Node From End of List
- Remove Nth Node From End of List
- Remove Nth Node From End of List
- Remove Nth Node From End of List
- Remove Nth Node From End of List
- Remove Nth Node From End of List
- Remove Nth Node From End of List
- Remove Nth Node From End of List
- Remove Nth Node From End of List
- 关于事务的操作功能描述
- 工作记录
- 百度地图的开发(2)
- <br/>与\n的区别
- 快速回收复用TCP的TIME_WAIT
- #19 Remove Nth Node From End of List
- 20150521-Allegro出图2-光绘文件
- ViewPager和Fragment的组合使用
- HDU_3669 斜率优化DP
- make 2>&1 | tee build.log
- iOS7的适配小问题, uiscrollview中view向下偏移64
- notification 详解
- apache poi导出excel
- 26>ASI的基本使用