1. 算法6.環(huán)形鏈表

        共 1513字,需瀏覽 4分鐘

         ·

        2021-10-18 07:32

        這個題曾經(jīng)被問到過,當(dāng)我準(zhǔn)備進行邏輯推理的時候,直接被打斷了,其實算法題真的背過就好了,或者把第一印象記住,之后一旦被問到,稍微摸一下腦瓜子,然后把自己背過的東西假裝很順利地推導(dǎo)出來,這其實才是面試官想要的東西。



        給定一個鏈表,判斷鏈表中是否有環(huán)。


        b6468a3c07f541b5f05c8e49ab77f01f.webp



        快慢指針解法:一般提到這個鏈表的算法題,快慢指針這個概念我們一定要時刻牢記,不只是在這個地方有用,曾經(jīng)還有一道面試題也用過這個概念,不過我現(xiàn)在一時半會記不起來了。顯而易見,在一個環(huán)里面,跑的快的遲早能夠再遇上跑得慢的。



        924164b63788de1248eb87d18745d4ed.webp



        代碼如下:


        /** * @author Ted * @version 1.0 * @date 2021/10/16 17:54 */public class CircleListNode {

        public static void main(String[] args) {
        CircleListNode circleListNode = new CircleListNode(); ListNode head = new ListNode(8); ListNode node2 = new ListNode(3); head.next = node2; ListNode node3 = new ListNode(3); node2.next = node3; ListNode node4 = new ListNode(3); node3.next = node4; ListNode node5 = new ListNode(3); node4.next = node5; ListNode node6 = new ListNode(3); node5.next = node6; //尾指針指向node3 產(chǎn)生環(huán) node6.next = node3;
        boolean b = circleListNode.hasCycle(head); System.out.println(b); }
        public boolean hasCycle(ListNode head) { if (head == null || head.next == null) { return false; } ListNode slow = head; ListNode fast = head.next; while (slow != fast) { if (fast == null || fast.next == null) { return false; } slow = slow.next; fast = fast.next.next; } return true; }
        }
        class ListNode{ public int val; public ListNode next;

        public ListNode(int val){ this.val = val; }}


        瀏覽 49
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        評論
        圖片
        表情
        推薦
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
          
          

            1. 大香樵一本久久久制服诱惑 | 香蕉18禁av成人小说 | 天天爽天天操 | 日本18禁在线网站 | 国产又粗又黄又爽又硬的成人用品 |