zoukankan      html  css  js  c++  java
  • 两个链表的第一个公共结点

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

    思路:如果两个链表有公共节点,因为是两个单向链表,所以应该是Y型的,从后向前找找到一个不相同的后一个节点就是第一个公共节点。可是使用两个辅助栈。

    实现代码:

    /*
    public class ListNode {
        int val;
        ListNode next = null;
    
        ListNode(int val) {
            this.val = val;
        }
    }*/
    import java.util.*;
    public class Solution {
        private Stack<ListNode> stack1,stack2;
        
        public Solution() {
            stack1 = new Stack<ListNode>();
            stack2 = new Stack<ListNode>();
        }
        public ListNode FindFirstCommonNode(ListNode pHead1, ListNode pHead2) {
             
            ListNode cur1 = pHead1;
            ListNode cur2 = pHead2;
            
            while(cur1 != null) {
                stack1.push(cur1);
                cur1 = cur1.next;
            }
            
            while(cur2 != null) {
                stack2.push(cur2);
                cur2 = cur2.next;
            }
            ListNode ret = null;
            while(!stack1.isEmpty() && !stack2.isEmpty()) {
                ListNode node1 = stack1.pop();
                ListNode node2 = stack2.pop();
                if(node1 == node2) {
                    ret = node1;
                }
                else break;
            }
            
            return ret;
        }
    }
  • 相关阅读:
    1.tomcat部署项目的几种方式和weblogic部署方式及一点通讯
    C程序第二章节:算法
    java 代码第一天练习
    git生成公钥私钥
    sourceTree操作
    gradle插件安装
    gradle环境搭建
    bootstrap
    20170223
    大企业招聘真的是这样进行的吗?
  • 原文地址:https://www.cnblogs.com/wxisme/p/5460297.html
Copyright © 2011-2022 走看看