3.4 從無頭連結串列中刪除節點
阿新 • • 發佈:2020-11-18
3.4 從無頭連結串列中刪除節點
基礎問題
假設有一個沒有頭指標的單鏈表,一個指標指向中間的一個節點,不是第一個節點,也不是最後一個節點,刪除該節點
擴充套件問題
給你一個連結串列,只遍歷一次,在原地翻轉連結串列
class Test{ public static class ListNode{ int val; ListNode next; ListNode(int x){val = x;} } public static void main(String[] args) { } // 從無頭節點單鏈表中刪除節點 public void deleteListNode(ListNode node){ if(node == null) return; node.val = node.next.val; node.next = node.next.next; } // 翻轉連結串列 public static ListNode reverseList(ListNode head){ if(head == null || head.next == null) return head; ListNode dummy = new ListNode(0); ListNode pre = head; ListNode cur = head.next; dummy.next = null; while(pre != null){ pre.next = dummy.next; dummy.next = pre; pre = cur; if(cur != null)cur=cur.next; } return dummy.next; } }