java 练习递归..正和链表
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 练习递归..正和链表相关的知识,希望对你有一定的参考价值。
import java.io.*;
import java.util.*;
// Recursion practice
class Solution {
class Node {
int value;
Node next;
Node(int value, Node next){
this.value = value;
this.next = next;
}
public void print(){
System.out.print(this.value + ",");
if(this.next != null) {
this.next.print();
}
}
}
public static void main(String[] args) {
Solution solution = new Solution();
int[][] input = {
{-1,2,-41,4,-8},
{1,3,-9,121,31},
{1,2,3}
};
for(int i=0; i< input.length; i++){
Node root = solution.createList(input[i]);
System.out.print("Input :");
root.print();
System.out.print(" ResultI: " + solution.positiveSum(root));
System.out.print(", ResultR: " + solution.positiveSumR(root));
System.out.print(", ResultRH: " + solution.positiveSum(root));
System.out.println();
}
}
public Node createList(int[] input){
Node root = null;
for(int i=input.length-1;i>=0;i--){
Node newNode = new Node(input[i], root);
newNode.next = root;
root = newNode;
}
return root;
}
public int positiveSum(Node root) {
if(root == null){
return 0;
}
int sum = 0;
while(root != null) {
if(root.value > 0 ){
sum += root.value;
}
root = root.next;
}
return sum;
}
public int positiveSumR(Node root){
if(root == null) {
return 0;
}
int sum = positiveSum(root.next);
if(root.value > 0 ) sum += root.value;
return sum;
}
public int positiveSumRT(Node root){
if(root == null) {
return 0;
}
if(root.value > 0 ) {
return root.value + positiveSum(root.next);
} else {
return positiveSum(root.next);
}
}
}
以上是关于java 练习递归..正和链表的主要内容,如果未能解决你的问题,请参考以下文章
Leetcode练习(Python):链表类:第206题:反转链表:反转一个单链表。
递归查找链表中的第 n 个到最后一个元素
递归地反转Java中的链表
《Java练习题》进阶练习题
Python编程之数据结构与算法练习_007
递归控制-创建链表