美文网首页
工作笔记(六)

工作笔记(六)

作者: overflow_e4e4 | 来源:发表于2019-08-28 15:09 被阅读0次

    关于链表的两个示例

    编程中操作链表是最基础也是最容易让人搞晕的东西。
    两则demo警示自己不要忘记。

    1. 翻转链表

    public static ListNode reverseList(ListNode head) {
            if (head == null || head.next == null) return head;
            ListNode p = reverseList(head.next);
            head.next.next = head;
            head.next = null;
            return p;
    
        }
    

    2. 两两交换

    public static ListNode swapPairs(ListNode head) {
            if (head != null && head.next != null ) {
    
                ListNode nextHead = head.next.next;
    
                ListNode next = head.next;
                next.next = head;
    
    
                head.next =  swapPairs(nextHead);
                return next;
            }
            return head;
        }
    

    其中链表的结构为:

    /**
         * Definition for singly-linked list.
         */
        static class ListNode {
            int val;
            ListNode next;
    
            ListNode(int x) {
                val = x;
            }
        }
    

    后记

    如何不用递归实现?

    相关文章

      网友评论

          本文标题:工作笔记(六)

          本文链接:https://www.haomeiwen.com/subject/ghzpectx.html