Nayan
BAN USERpublic void addAlternate(NumbersLL list1, NumbersLL list2) {
NumbersLL newList = new NumbersLL();
int size = list1.getNodeCount() + list2.getNodeCount();
int i = 1, j = 1, k=1;
while(i <= size){
if(i % 2 == 1){
newList.addData(list1.getNode(j));
j++;
}
if(i % 2 == 0){
newList.addData(list2.getNode(k));
k++;
}
i++;
}
newList.printData();
}
public void append(int idx) {
circular();
IntNode newNode = head;
for (int i = 0; i < getNodeCount() - idx; i++) {
newNode = newNode.next;
}
IntNode temp = newNode.next;
newNode.next = null;
head.next = temp;
}
public void circular(){
IntNode currentNode = head;
while (null != currentNode.next) {
currentNode = currentNode.next;
}
currentNode.next = head.next;
}
public void findElementFromLast(int index) {
if (index < 1 || index > getNodeCount()) {
return;
}
Node currentNode = head;
for (int i = 0; i < (getNodeCount() - index) && currentNode != null; i++) {
currentNode = currentNode.next;
}
currentNode = currentNode.next;
System.out.println("Data: " + currentNode.data);
}
getNodeCount() is a simple function which returns number of nodes in linked list
- Nayan August 14, 2015package com.sample.que.linkedlist;
public class PalindromeLL {
Node head;
int counter;
public void addData(char data) {
Node newNode = new Node(data);
Node currentNode = head;
if (currentNode == null) {
head = newNode;
counter++;
return;
}
while (null != currentNode.next) {
currentNode = currentNode.next;
}
currentNode.next = newNode;
counter++;
return;
}
public char getNode(int index) {
if (index < 0) {
return '\0';
}
Node currentNode = head;
for (int i = 0; (i < index && currentNode != null); i++) {
currentNode = currentNode.next;
}
System.out.println("\n");
return currentNode.data;
}
public int getNodeCount() {
return counter;
}
public boolean isPalindrome() {
int i = 0;
int j = getNodeCount() - 1;
boolean checkPalin = false;
while (i <= j) {
if (getNode(i) == getNode(j)) {
checkPalin = true;
}else{
checkPalin = false;
break;
}
i++;
j--;
}
return checkPalin;
}
}
public static void main(String[] args) {
int[] array = {1, 2, 3, 4};
int size = array.length;
int[] result = new int[size];
int temp = 1;
for(int i = 0; i < size ; i++){
temp = 1;
for(int j = size-1 ; j >=0; j--){
temp = temp * array[j];
}
result[i] = temp / array[i];
}
for(int value : result){
System.out.println(value);
}
}
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
String givenString = scan.nextLine();
String reverseString = reverseString(givenString);
if (reverseString.equalsIgnoreCase(givenString)) {
System.out.println("Palindrome");
} else {
System.out.println("Not Palindrome");
}
}
private static String reverseString(String str) {
char[] reversed = str.toCharArray();
for (int i = str.length() - 1, j = 0; i >= 0 && j < str.length()-1; i--, j++) {
reversed[j] = reversed[i];
}
return String.valueOf(reversed);
}
public static void main(String[] args) {
int[] array1 = {1, 2, 3, 4};
int[] array2 = {5, 6, 7, 8};
int[] result = new int[array1.length];
for (int i = array1.length - 1; i >= 0; i--) {
result[i] = array1[i] + array2[i];
}
int remainder = 0;
for (int j = result.length - 1; j >= 0; j--) {
int sum = result[j] + remainder;
remainder = sum / 10;
if (sum > 9) {
result[j] = (sum) % 10;
} else {
result[j] = sum + remainder;
}
}
for(int val : result){
System.out.println(val);
}
}
This will not work for additional node is added to the any of the list. I will update the code and will post again.
- Nayan August 17, 2015