leetcode-两两交换链表中的节点

六月ゝ 毕业季﹏ 提交于 2020-01-26 22:47:24
class Solution {
    public ListNode swapPairs(ListNode head) {
        return swap(head);
    }
    public ListNode swap(ListNode leftnode){
        if(leftnode==null || leftnode.next == null){
            return leftnode;
        }
        ListNode tempnextnode = leftnode.next;
        leftnode.next = swap(leftnode.next.next);
        tempnextnode.next = leftnode;
        return tempnextnode;
    }
}

递归解决这类题的精髓就是让某一个Node的next是递归函数的返回值!

之前我的写法是在递归函数中拼装好了然后调用swap(node.next),这样会增加复杂度

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!