数据结构学习
最后一个结点指针必须为空,之后遍历方便确认其是尾部。
一个结点只可以有一个后继指针和一个前置指针,当改变后继指针指向一个新的结点后,与之前指向结点之间的联系就断了。(妈妈选择拉儿子的手就必须放开爸爸的手)
在头指针后定义指针进行操作,不要移动头指针比较好。
使用指向终端结点的尾指针
合并两个循环列表:
双向链表 对于查找上一个节点,获取十分方便
但是也会带来麻烦:在插入和删除时,需要更改两个指针变量
ListNode s=new ListNode(0)后可以进行s.next,s.next==null
ListNode s;不可进行next操作,因为没有初始化,所以没有next这一元素,也无法打印,连null都不是
public static void main(String[] args) {
// TODO Auto-generated method stub
ListNode t=new ListNode(0);
ListNode tCopy=t;
ListNode firstListNode=new ListNode(2);
ListNode secondListNode=new ListNode(3);
firstListNode.next=secondListNode;
t=firstListNode;
System.out.println(t.next.val);//3
System.out.println(tCopy.next);//null
ListNode mListNode=new ListNode(5);
ListNode nListNode=mListNode;
mListNode.next=new ListNode(6);
System.out.println(mListNode.next.val);//6
System.out.println(nListNode.next.val);//6
}