Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 597153
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 13, 20262026-05-13T16:14:58+00:00 2026-05-13T16:14:58+00:00

I have a question about the merits of two different approaches to implementing a

  • 0

I have a question about the merits of two different approaches to implementing a recursive method. I’ve always followed the approach of version 1, i.e., accepting a single Node parameter, but I recently encountered the style used in version 2, which accepts a collection of Nodes.

Consider the following Node class, along with the 2 versions of the Visit method:

class Node
{
    public List<Node> children = new List<Node>();
    // other data members 
}

Version 1 accepts a single Node parameter:

Visit(Node n)
{
  DoSomethingUsefulWith(n);

  foreach (Node child in n.children)
    Visit(child);
}

Version 2 accepts a collection of Nodes:

Visit(List<Node> nodes)
{
  foreach (Node n in nodes)
  {
    DoSomethingUsefulWith(n);
    Visit(n.children);
  }
}

Are there any benefits, even stylistically, to using one form over the other? Should the choice be based solely on whether you’re starting with a single Node vs a collection of Nodes, even though it would be trivial to use either method version in either case?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-13T16:14:58+00:00Added an answer on May 13, 2026 at 4:14 pm

    I wouldn’t implement version 2, always version 1.
    Version 2 is basically version 1 in a for-each loop

    If you later on decide that you want to call the method with one parameter you can always re-use version 1.
    If you only have version 2 and one node you have to create a dummy list to use version 1.

    I don’t think that performance is a real issue here. Both methods have one (by reference) argument, they should use about the same amount of memory.

    However .NET might be able to optimize one of the two a bit better. Profile both methods to be sure.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

i have question about two different Bundle object in below methods : onSaveInstanceState(Bundle outState);
I have question about my code which does the Hoare Partition Method. Here is
I have question about global variable in Objective-C. I have two .m files :
I'm learning asp.net. I have question about example buttons I can use two types
I have question about sending emails from MVC3 application. I already read for exmple
I have question about how I can save the result of function I have
I have question about normalization. Suppose I have an applications dealing with songs. First
I have question about interpreting strings as packed binary data in C++. In python,
i have question about YAJLiOS parser... I have next json data : {{ body
I have a question about how the System class works. Lets say there is

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.