3 就地逆转 就地逆置法和头插法的实现思想类似,唯一的区别在于,头插法是通过建立一个新链表实现的,而就地逆置法则是直接对原链表做修改,从而实现将原链表反转 值得一提的是,在原链表的基础上做修改,需要额外借助 2 个指针(假设分别为 beg 和 end)。仍以图 1 所示的链表为例,接下来用就地逆置法实现对该链表...
publicstaticvoidmain(String[] args){// 新建链表LinkNodel=getALinkList(5); LinkNode cur;// 若为带头节点的链表,取消这段注释// cur = new LinkNode(-1);// cur.next = l;// l = cur;cur = l;// 反转前打印while(cur !=null){ System.out.print(cur.val+" "); cur = cur.next; }/...
单链表反转笔记: 1 #include 2 #include 3 using namespace std; 4 5 struct ListNode 6 { 7 int val; 8 ListNode* next; 9 ListNode(int i):val(i),next(...
单链表的反转非递归算法 定义单链表的结点 typedefstructListNode{intvalue; ListNode*next; }ListNode; 我们采用的单链表是带头结点的。 需要遍历一遍链表,在遍历过程中,把遍历的节点一次插入到头部。在这个过程之后,第一个节点成了最后节点,因此要特殊处理,改其后继为NULL。 voidInversion(ListNode*head) {if(head-...