LinkedList 遍历

两个问题

1)如何遍历

2)如何design + 找中点 + reverse

key

  • 小心不要丢head,小心不要丢any ListNode

  • 小心null pointer exception

  • trick,处理后面的先

  • trick,先处理null,一个,甚至两个的corner case

  • trick,注意是准备2个,还是3个linkedNode一起处理

遍历single LinkedList/ double

public void traversal(ListNode head) {
    if (head == null) {
        return;
    }
    ListNode cur = head;
    while (cur != null) {
        System.out.println(cur.value);
        cur = cur.next;
    }
    
    // alternative 写法
    //while (cur.next != null) {
    //    System.out.println(cur.value);
    //    cur = cur.next;
    //}
    //System.out.println(cur.value);

}

遍历circular LinkedList

public void traversal(ListNode head) {
    if (head == null) {
        return;
    }
    ListNode cur = head;
    while (cur.next != head) {
        System.out.printlin(cur.value);
        cur = cur.next;
    }
    System.out.println(cur.value);
}

Last updated