2017-06-22 70 views
0

我有這樣的代碼,它應該在鏈接列表中並返回小於參數中指定的節點值的節點,但它是完全相反。我做錯了什麼?打印節點的值小於參數中設置的值

static LinkedListNode removeNodes(LinkedListNode list, int x) { 
    LinkedListNode current = list; 
    while(current.next != null){ 
     if (current.val >x){ 
      if (current.next.next == null){ 
       break; 
      } 
      else{ 
      current = current.next.next; 
      } 
     } 
     else{ 
      current = current.next; 
     } 
    } 
    return current; 
} 
+1

你是否應該使用'current.val Chris

+0

**它正在做相反的**,嚴重缺少什麼**相反**意味着在您的上下文中,但顯然從** if(current.val> x)**改爲** if(current.val < x)**也許意味着**對面**你是;尋找?? – ShayHaned

+0

@Chris背後的意思**對面**對我們兩個人來說都是**相同**的東西:) – ShayHaned

回答

0

爲了從鏈表中刪除節點,您需要更改.next引用而不是當前值。

而且你> x應是< X

static LinkedListNode removeNodes(LinkedListNode list, int x) { 
    LinkedListNode current = list; 
    while(current.next != null){ 
     if (current.val < x){ 
      if (current.next.next == null){ 
       break; 
      } 
      else{ 
       current.next = current.next.next; 
      } 
     } 
     else{ 
      current = current.next; 
     } 
    } 
    return current; 
}