LeetCode

Merge Two Sorted List

Des: merge two sorted list into one sorted list (splicing the node of the first two lists)

我的思路:
每一个循环都复制一个新的new list node, 不破坏原List 的结构,效率较低 且不符合题目要求
current1
current2
dummy

分析:这道题目的本质是指针的使用,如何哨兵节点能够改变指针的指向,保留原指针的next元素指向,
在合并两个链表时,只需要使用额外的一个节点来保存原节点的指向即可。

小技巧:判断特殊情况时 由特殊 -> 一般, L1和L2都存在 -> 只有L1存在 -> ELSE(L2存在 和都不存在)

Question: 哨兵节点的作用?A: save the head node of the new list.
有效的变量名? A: lastnode
C语言中的 -> 和 . 符号使用差别: -> 针对的是struct pointer 结构体指针 代替 (student).name 中的 ().

Reverse Linked List

两个变量
三个变量之间的关系,prev 节点,curr 节点,curr.next节点
curr.next 指向 prev, 所以需要先保留一下 curr.next

head的作用没有想明白,

Intersection of two linked list

思路: 先check最后一个元素是否相同,判断其是否存在intersection,如果存在交叉,从后向前遍历,找到节点
Question: 从后往前遍历无法实现,从前往后遍历 如何确定intersection
每次+1 -> 不可以:可能不同步
固定一个,遍历另一个 -> 超时

原文地址:https://www.cnblogs.com/kong-xy/p/7802166.html