摘要:
单链表,可能有环,也可能无环。给定两个单链表的头节点head1 和 head2 这两个链表可能交也可能不交。实现函数,如果相交,请返回相交的第一个节点,不交返回null 这道题目需要分析的情况非常 本题拆分长三个子问题,每一个子问题都可以作为一道独立的算法题。 问题一、 如何判断有环 有则返回第一个 阅读全文
摘要:
对于这个问题还有一个很好的方法: 1、将两个链表逆序,这样就可以依次得到从低到高位的数字 2、同步遍历两个逆序后链表,相加生成新链表,同时关注进位 3、当两个链表都遍历完成后,关注进位。 4、 将两个逆序的链表再逆序一遍,调整回去 返回结果链表 阅读全文
摘要:
假设链表中每一个节点的值都在0~9之间,那么链表整体就可以代表一个整数 给定两个链表的头节点head1和head2,请生成代表两个整数相加值的结果链表 传统做法 先把链表生成 整数 然后相加 这样的有个溢出问题 介绍一种做法: 利用栈结构求解: 1、 将两个链表分别从左到右遍历,遍历过程中将值压栈, 阅读全文
摘要:
一种特殊的链表节点类描述如下: public class Node{ public int value; public Node next; public Node rand; public Node(int data){ this.value = data } } rand指针是Node类中的新增 阅读全文
摘要:
给定一个单向链表的头节点head,节点的值是整型,再给定一个整数pivot。实现一个调整函数,左部分<pivot 中间=pivot 右边>pivot,除这个要求外,其他顺序不可改变 阅读全文
摘要:
给定一个链表的头节点head,判断是否是回文结构 1->2->1 返回true 进阶: 如果链表长度N,时间复杂度O(N) 额外空间O(1) 方法一 利用栈结构(需要额外空间) 从左到右遍历,一次压栈。 这样的到的 从栈顶到栈底的节点值出现顺序会与原链表从左到右的值出现顺序相反。 废话不多说,上代码 阅读全文