【IT笔试面试题整理】反转链表
生活随笔
收集整理的這篇文章主要介紹了
【IT笔试面试题整理】反转链表
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
【試題描述】定義一個函數,輸入一個鏈表的頭節點,反轉該鏈表并輸出反轉后鏈表的頭節點
【參考代碼】
方法一:
1 public static Link reverseLinkList(Link head) 2 { 3 if (head == null || head.next == null) 4 return head; 5 6 Link pre = null; 7 Link cur = head; 8 Link back = head.next; 9 10 while (back != null) 11 { 12 cur.next = pre; 13 pre = cur; 14 cur = back; 15 back = back.next; 16 } 17 cur.next = pre; // 當current為最后一個節點時,back為null,所以要再指向前節點 18 head = cur; 19 20 return head; 21 }?
方法二:
1 public static Link reverseLinkList2(Link head) 2 { 3 if (head == null || head.next == null) 4 return head; 5 Link p1 = head; 6 Link p2 = p1.next;// p2其實記錄的下一步遞歸過程后的尾結點 7 head = reverseLinkList2(p2); 8 p2.next = p1; 9 p1.next = null; 10 return head; 11 }?
總結
以上是生活随笔為你收集整理的【IT笔试面试题整理】反转链表的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【IT笔试面试题整理】寻找二叉树两节点的
- 下一篇: 【IT笔试面试题整理】字符串转数组+数组