力扣上面的两道算法题

力扣上面的两道算法题,第1张

21.合并两个有序链表

题解
struct ListNode* mergeTwoLists(struct ListNode* list1, struct ListNode* list2){
    if(list1==NULL)
        return list2;
    if(list2==NULL)
        return list1;
    if(list1->val < list2->val)
    {
        list1->next = mergeTwoLists(list1->next,list2);
        return list1;
    }
    else
    {
        list2->next = mergeTwoLists(list1,list2->next);
        return list2;
    }
}

本来由于不太理解力扣的答题模式所以无从下手,多次出现编译错误,于是就去看了题解,发现了一个大佬居然想到了递归的方法,所以就利用了递归的思路对本题进行了解答。

876.链表的中心结点


这道题感觉python 更好用一点,但是整体思路都是一样的,就是先知道链表长度,然后整除即可

class Solution:
    def middleNode(self, head: ListNode) -> ListNode:
        l=0
        p=head
        while p:
            l+=1
            p=p.next
        while(head and l//2):
            head=head.next
            l-=2
        return head

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/797007.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-06
下一篇 2022-05-06

发表评论

登录后才能评论

评论列表(0条)

保存