博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【链表】两个链表的第一个公共结点
阅读量:5313 次
发布时间:2019-06-14

本文共 1550 字,大约阅读时间需要 5 分钟。

输入两个链表,找出它们的第一个公共结点。

 

1 public class Solution { 2      3     /** 4      * 思路:两个链表相交,存在公共的链表尾,根据链表长度的差值,移动指针,找到第一个相同的节点,即为第一个公共节点 5      * @param pHead1 6      * @param pHead2 7      * @return 8      */ 9     public ListNode FindFirstCommonNode(ListNode pHead1, ListNode pHead2) {10 11         if (pHead1 == null || pHead2 == null) {12             return null;13         }14 15         int d = 0;16 17         ListNode p1 = pHead1;18         ListNode p2 = pHead2;19 20         int length1 = 0;21         while (pHead1 != null) {22             length1++;23             pHead1 = pHead1.next;24         }25 26         int length2 = 0;27         while (pHead2 != null) {28             length2++;29             pHead2 = pHead2.next;30         }31 32         if (length1 > length2) {33             d = length1 - length2;34 35             while (d > 0) {36                 p1 = p1.next;37                 d--;38             }39         } else if (length1 < length2) {40             d = length2 - length1;41 42             while (d > 0) {43                 p2 = p2.next;44                 d--;45             }46         } else {47             return p1;48         }49 50         while (p1 != null) {51             if (p1 == p2) {52                 break;53             }54             p1 = p1.next;55             p2 = p2.next;56         }57         return p1;58     }59 }60 61 class ListNode {62     int val;63     ListNode next = null;64 65     ListNode(int val) {66         this.val = val;67     }68 }

 

转载于:https://www.cnblogs.com/jiangyi-uestc/p/5840808.html

你可能感兴趣的文章
nginx的stub_status状态信息解释
查看>>
常用JS表单验证方法
查看>>
struts1和struts2的区别
查看>>
函数之匿名函数
查看>>
shell习题第16题:查用户
查看>>
python脚本检查TCP端口是否正常
查看>>
梯度下降法与方向导数
查看>>
实验4 [bx]和loop的使用
查看>>
Redis常用命令
查看>>
Handler消息传递机制
查看>>
linux 查看系统信息
查看>>
2018.08.22 NOIP模拟 shop(lower_bound+前缀和预处理)
查看>>
2018.11.06 bzoj1040: [ZJOI2008]骑士(树形dp)
查看>>
2019.02.15 bzoj5210: 最大连通子块和(链分治+ddp)
查看>>
redis cluster 集群资料
查看>>
关于B/S和C/S架构的探析[转帖]
查看>>
Python学习札记(十六) 高级特性2 迭代
查看>>
红豆杉
查看>>
【C语言】指针
查看>>
Fiddler AutoResponder正则替换
查看>>