编辑代码

package com.xinheyun;

import java.util.ArrayList;

public class FindFirstNode {
    public static class Node {
        private Integer id;
        private Integer nextId;
        public Node(Integer id, Integer nextId) {
            this.id = id;
            this.nextId = nextId;
        }
        @Override
        public String toString() {
            return String.format("Node(id:%d; nextId:%d)", id, nextId);
        }
    }

    public static String findFirstNode(ArrayList<Node> list){
        //TODO your impl code
        if(null == list || list.size()==0){
            return "";
        }
        Node headNode = list.get(0);
        for(Node node:list){
            if(null == node.nextId) {
                headNode = node;
                break;
            }
        }
        for(Node n2:list){
            if(null != n2.nextId && n2.nextId.equals(headNode.id) ){
                headNode = n2;
                break;
            }
        }
        for(Node n3:list){
            if(null != n3.nextId && n3.nextId.equals(headNode.id) ){
                headNode = n3;
                break;
            }
        }
        return headNode.toString();
    }

    public static void main(String[] args) {
        ArrayList<Node> list = new ArrayList<>();
        list.add(new Node(2, 3));
        list.add(new Node(3, null));
        list.add(new Node(1, 2));
        System.out.println(findFirstNode(list));
    }
}