public NodeLL SwapPairs(NodeLL head) { if (head == null || head.next == null) { return(head); } NodeLL node = head; head = node.next; // remember head node; NodeLL prevNode = null; while (node != null) { NodeLL nextPair = null; if (node.next != null) { nextPair = node.next.next; // remember next pair start node = SwapPair(node); // swap current pair } if (prevNode != null) { prevNode.next = node; // link prev pair to current } prevNode = node.next; // remember current pair end node = nextPair; } return(head); }
NodeLL SwapPair(NodeLL node) { // assume node!=null and node.next!=null NodeLL nextNode = node.next; // node 2 NodeLL nextNextNode = nextNode.next; // node 3 node.next = nextNextNode; //link node 1 to 3 nextNode.next = node; // link node 2 to 1 return(nextNode); // return node 2 }
public NodeLL Swap(NodeLL head) { NodeLL node = head; NodeLL nextNode = node.next; NodeLL nextnextNode = nextNode.next; node.next = nextnextNode; nextNode.next = node; return(nextNode); }
public NodeLL MergeK(NodeLL [] list) { NodeLL ptr = new NodeLL(0); NodeLL res = ptr; for (int i = 0; i < list.Length; i++) { ptr = Merge(ptr, list[i]); } return(ptr); }
public NodeLL ReverseKPairs(NodeLL head, int k) { int count = 0; NodeLL current = head; NodeLL next = null; NodeLL prev = null; while (current != null && count < k) { next = current.next; current.next = prev; prev = current; current = next; count++; } if (next != null) { head.next = ReverseKPairs(next, k); } return(prev); }
public NodeLL Merge(NodeLL l1, NodeLL l2) { NodeLL ptr = new NodeLL(0); NodeLL head = ptr; while (l1 != null && l2 != null) { if (l1.data < l2.data) { ptr.next = new NodeLL(l1.data); l1 = l1.next; } else { ptr.next = new NodeLL(l2.data); l2 = l2.next; } ptr = ptr.next; } ptr.next = l1 != null ? l1 : l2; return(head.next); }
public NodeLL Merge(NodeLL ptr, NodeLL l1) { NodeLL res = new NodeLL(0); NodeLL head = res; while (ptr != null && l1 != null) { if (ptr.data < l1.data) { res = new NodeLL(ptr.data); ptr = ptr.next; } else { res = new NodeLL(l1.data); l1 = l1.next; } res = res.next; } res.next = l1 != null ? l1 : ptr; return(head.next); }
public NodeLL SwapPairs(NodeLL head) { NodeLL node = head; head = node.next; NodeLL prev = null; while (head != null) { NodeLL nextPair = null; if (node.next != null) { nextPair = node.next.next; node = Swap(head); } if (prev != null) { prev.next = node; } prev = node.next; node = nextPair; } return(head); }
static void Main(string[] args) { //string s = "babad"; //MS1 m = new MS1(); //string res = m.longestPalindrome(s); // string s = "-42"; // MS2 m = new MS2(); //long res= m.SToI(s); //string s = "VIII"; // MS3 n = new MS3(); //n.RomanToInt(s); //MS4 m = new MS4(); //int[] arr = { -1, 0, 1, 2, -1, -4 }; //List<List<int>> l=m.ThreeSum(arr); //SortColors s = new SortColors(); //int[] arr = { 2, 0, 2, 1, 1, 0 }; //int []arr1=s.Sort(arr); //validParenthesis v = new validParenthesis(); //string s = "{ ]"; //bool res=v.IsValid1(s); NodeLL n = new NodeLL(1); n.next = new NodeLL(2); n.next.next = new NodeLL(3); n.next.next.next = new NodeLL(4); n.next.next.next.next = new NodeLL(5); //NodeLL m = new NodeLL(1); //m.next = new NodeLL(3); //m.next.next = new NodeLL(4); //NodeLL[] l = { n, m }; //MS6 p = new MS6(); //MS7 m = new MS7(); //NodeLL l=m.SwapPairs(n); //MS8 m = new MS8(); //NodeLL res=m.ReverseKPairs(n, 2); //MS9 m1 = new MS9(); //int[] arr = { 0, 0, 1, 1, 1, 2, 2, 3, 3, 4 }; //int l = m1.RemoveDuplicates(arr); //string hay = "hello"; //string needle = "ll"; //MS10 m = new MS10(); //int res=m.StrStr(hay, needle); //MS11 m = new MS11(); //int[] arr = { 4, 5, 1, 2, 3 }; //int res=m.Search(arr, 3); //MS12 p = new MS12(); //int[] arr = { 1, 1, 3 }; //List<List<int>> p2=p.Permutation(arr); //MS13 m = new MS13(); //string s = "my name is parvathi"; //string res=m.Rotate(s); //Trie o = new Trie(); //string s = "leet"; //o.Insert(s); //bool res1 = o.Search(s); //bool res2 = o.StartsWith("lee"); char[,] board = { { 'o', 'a', 'a', 'n' }, { 'e', 't', 'a', 'e' }, { 'i', 'h', 'k', 'r' }, { 'i', 'f', 'l', 'v' } }; string[] words = { "oath", "pea", "eat", "rain" }; TrieWordSearch t = new TrieWordSearch(); List <string> res = t.FindWords(board, words); }