コード例 #1
0
        public void main()
        {
            Console.WriteLine("Hello World!");

            var node1 = new Node1(1);
            var node2 = new Node1(2);
            var node3 = new Node1(3);
            var node4 = new Node1(4);
            var node5 = new Node1(5);
            var node6 = new Node1(6);

            node1._left  = node2;
            node1._right = node3;

            node2._left  = node4;
            node2._right = null;

            node3._left  = node5;
            node3._right = node6;

            node4._left = node4._right = null;
            node5._left = node5._right = null;
            node6._left = node6._right = null;

            var node = Connect(node1);
        }
コード例 #2
0
ファイル: LinkedList.cs プロジェクト: nkjammula/LeetCode
        public void InsertFront(SingleLinkedList singleLinked, int data)
        {
            Node1 new_Node = new Node1(data);

            new_Node.data     = data;
            new_Node.next     = singleLinked.head;
            singleLinked.head = new_Node;
        }
コード例 #3
0
ファイル: LinkedList.cs プロジェクト: nkjammula/LeetCode
        public Node1 GetLasNode(SingleLinkedList sList)
        {
            Node1 temp = sList.head;

            if (temp.next != null)
            {
                temp = temp.next;
            }
            return(temp);
        }
コード例 #4
0
ファイル: LinkedList.cs プロジェクト: nkjammula/LeetCode
        public void InsertNodeAt(Node1 PrevNode, int data)
        {
            Node1 new_Node = new Node1(data);

            if (PrevNode == null)
            {
                Console.WriteLine("New node cannot be null");
                return;
            }
            new_Node.next = PrevNode.next;
            PrevNode.next = new_Node;
        }
コード例 #5
0
ファイル: LinkedList.cs プロジェクト: nkjammula/LeetCode
        public void InsertLast(SingleLinkedList singleLinkedList, int Data)
        {
            Node1 New_Node = new Node1(Data);

            New_Node.data = Data;
            if (singleLinkedList == null)
            {
                singleLinkedList.head = New_Node;
                return;
            }
            Node1 lastNode = GetLasNode(singleLinkedList);

            lastNode.next = New_Node;
        }
コード例 #6
0
ファイル: WallsAndGates.cs プロジェクト: woodvase/VsCode
        public void WallsAndGates(int[,] rooms)
        {
            if (rooms == null)
            {
                return;
            }

            int           row = rooms.GetLength(0);
            int           col = rooms.GetLength(1);
            Queue <Node1> q   = new Queue <Node1>();

            for (int i = 0; i < row; i++)
            {
                for (int j = 0; j < col; j++)
                {
                    if (rooms[i, j] == 0)
                    {
                        q.Enqueue(new Node1(i, j, rooms[i, j]));
                    }
                }
            }

            while (q.Count > 0)
            {
                Node1 n = q.Dequeue();
                rooms[n.r, n.c] = n.distance;
                if (n.r > 0 && rooms[n.r - 1, n.c] == int.MaxValue)
                {
                    q.Enqueue(new Node1(n.r - 1, n.c, n.distance + 1));
                }
                if (n.r + 1 < row && rooms[n.r + 1, n.c] == int.MaxValue)
                {
                    q.Enqueue(new Node1(n.r + 1, n.c, n.distance + 1));
                }

                if (n.c > 0 && rooms[n.r, n.c - 1] == int.MaxValue)
                {
                    q.Enqueue(new Node1(n.r, n.c - 1, n.distance + 1));
                }

                if (n.c + 1 < col && rooms[n.r, n.c + 1] == int.MaxValue)
                {
                    q.Enqueue(new Node1(n.r, n.c + 1, n.distance + 1));
                }
            }
        }
コード例 #7
0
        private static Node1 Connect(Node1 root)
        {
            if (root == null)
            {
                return(root);
            }

            Node1 cur = root;

            while (cur != null)
            {
                Node1 nextNode = new Node1(0);

                Node1 pre = nextNode;

                while (cur != null)
                {
                    if (cur._left != null)
                    {
                        pre._next = cur._left;
                        pre       = pre._next;
                    }

                    if (cur._right != null)
                    {
                        pre._next = cur._right;
                        pre       = pre._next;
                    }

                    cur = cur._next;
                }

                cur = nextNode._next;
            }

            return(root);
        }
コード例 #8
0
ファイル: LinkedList.cs プロジェクト: nkjammula/LeetCode
        public void DeleteByKey(SingleLinkedList singleLinkedList, int key)
        {
            Node1 temp = singleLinkedList.head;
            Node1 prev = null;

            if (temp != null && temp.data == key)
            {
                singleLinkedList.head = temp.next;
                return;
            }

            while (temp != null && temp.data != key)
            {
                prev = temp;
                temp = temp.next;
            }

            if (temp == null)
            {
                return;
            }

            prev.next = temp.next;
        }
コード例 #9
0
ファイル: LinkedList.cs プロジェクト: nkjammula/LeetCode
 public Node1(int d)
 {
     data = d;
     next = null;
 }