码迷,mamicode.com
首页 > 其他好文 > 详细

LF.366.Linked List Insert At Index

时间:2018-03-29 13:28:45      阅读:190      评论:0      收藏:0      [点我收藏+]

标签:index   val   node   16px   --   log   length   return   body   

Insert a new element at a specific index in the given linked list. The index is 0 based, and if the index is out of the list‘s scope, you do not need to do anything.

Examples:

1 -> 2 -> 3 -> null, insert 4 at index 3, --> 1 -> 2 -> 3 -> 4 -> null

1 -> 2 -> null, insert 4 at index 0, --> 4 -> 1 -> 2 -> null

 

 1 public class Solution {
 2   public ListNode insert(ListNode head, int index, int value) {
 3     // Write your solution here
 4     if (head == null || index < 0) {
 5         return head;
 6     }
 7     int length = getLength(head) ;
 8     //corner case: index out of list‘s scope
 9     if (length < index) {
10         return head ;
11     }
12     ListNode dummy = new ListNode(0);
13     ListNode curr = dummy ;
14     dummy.next = head ;
15     int counter = 0 ;
16     /*
17          1 -> 2 -> 3-> null insert @ index = 1
18     d/c-->
19          c
20     */
21     while(curr != null ){
22         if (counter == index) {
23             ListNode newNode = new ListNode(value);
24             ListNode temp = curr.next ;
25             curr.next = newNode ;
26             newNode.next = temp ;
27             break ;
28         }
29         curr = curr.next ;
30         counter++;
31     }
32     return dummy.next ;
33   }
34 
35   private int getLength(ListNode head){
36     if (head == null) {
37         return 0;
38     }
39     ListNode curr = head ;
40     int res = 0 ;
41     while(curr != null){
42         curr = curr.next ;
43         res++;
44     }
45     return res ;
46   }
47 
48 }

 

LF.366.Linked List Insert At Index

标签:index   val   node   16px   --   log   length   return   body   

原文地址:https://www.cnblogs.com/davidnyc/p/8669158.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!