数据结构学习

最后一个结点指针必须为空,之后遍历方便确认其是尾部。

一个结点只可以有一个后继指针和一个前置指针,当改变后继指针指向一个新的结点后,与之前指向结点之间的联系就断了。(妈妈选择拉儿子的手就必须放开爸爸的手)

在头指针后定义指针进行操作,不要移动头指针比较好。

使用指向终端结点的尾指针

合并两个循环列表:

双向链表 对于查找上一个节点,获取十分方便

但是也会带来麻烦:在插入和删除时,需要更改两个指针变量

 

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

        
    }

posted @ 2016-02-08 16:57  sweetxy  阅读(148)  评论(0)    收藏  举报