{"id":34720,"date":"2024-11-01T09:31:16","date_gmt":"2024-11-01T09:31:16","guid":{"rendered":"http:\/\/atmokpo.com\/w\/?p=34720"},"modified":"2024-11-01T11:26:50","modified_gmt":"2024-11-01T11:26:50","slug":"swift-coding-test-course-counting-leaf-nodes","status":"publish","type":"post","link":"https:\/\/atmokpo.com\/w\/34720\/","title":{"rendered":"Swift Coding Test Course, Counting Leaf Nodes"},"content":{"rendered":"<p><body><\/p>\n<h2>Problem Description<\/h2>\n<div class=\"problem\">\n<p>A leaf node in a binary tree refers to a node that has no child nodes. Write a function to count the number of leaf nodes in a given binary tree.<\/p>\n<p>For example:<\/p>\n<ul>\n<li>Input:\n<pre>\n                   1\n                  \/ \\\n                 2   3\n                \/ \\\n               4   5\n                <\/pre>\n<\/li>\n<li>Output: 3 (Leaf nodes: 4, 5, 3)<\/li>\n<\/ul>\n<\/div>\n<h2>Problem Analysis<\/h2>\n<p>This problem involves implementing an algorithm that can count the number of nodes with no child nodes (i.e., leaf nodes) in the given binary tree. You can traverse the binary tree using either a recursive or iterative approach to find the leaf nodes.<\/p>\n<h2>Algorithm Design<\/h2>\n<p>To find the leaf nodes, the following steps are followed:<\/p>\n<ol>\n<li>Define a function to traverse the binary tree.<\/li>\n<li>If the current node is not NULL:<\/li>\n<ul>\n<li>Recursively call the left child node.<\/li>\n<li>Recursively call the right child node.<\/li>\n<li>Check if the current node is a leaf node; if it is, increment the count.<\/li>\n<\/ul>\n<li>If it is NULL, the function terminates.<\/li>\n<\/ol>\n<h2>Swift Implementation<\/h2>\n<p>Now, let&#8217;s implement the above algorithm in Swift. Below is the code for the function that counts the number of leaf nodes:<\/p>\n<pre>\n    class TreeNode {\n        var value: Int\n        var left: TreeNode?\n        var right: TreeNode?\n        \n        init(value: Int) {\n            self.value = value\n            self.left = nil\n            self.right = nil\n        }\n    }\n\n    func countLeafNodes(root: TreeNode?) -> Int {\n        guard let node = root else {\n            return 0\n        }\n        \n        \/\/ Check if it is a leaf node\n        if node.left == nil && node.right == nil {\n            return 1\n        }\n        \n        \/\/ Recursively count the number of leaf nodes in the left and right child nodes\n        return countLeafNodes(root: node.left) + countLeafNodes(root: node.right)\n    }\n    <\/pre>\n<h2>Code Explanation<\/h2>\n<p>The above code implements the <code>countLeafNodes<\/code> function to count the number of leaf nodes in a binary tree. I will describe each part:<\/p>\n<ul>\n<li><code>TreeNode<\/code> class: Defines each node in the binary tree. Each node has a value and left and right children.<\/li>\n<li><code>countLeafNodes<\/code> function: Takes a given node as an argument and returns the number of leaf nodes.<\/li>\n<li><code>guard let<\/code>: Checks if the current node is NULL, and if it is, returns 0 to terminate the search.<\/li>\n<li>Leaf node check: Returns 1 if the current node has no left and right child nodes.<\/li>\n<li>Recursive calls: Recursively calls the left and right child nodes and adds up the number of leaf nodes.<\/li>\n<\/ul>\n<h2>Test Cases<\/h2>\n<p>Let&#8217;s create some test cases to verify that the function works correctly.<\/p>\n<pre>\n    \/\/ Create tree\n    let root = TreeNode(value: 1)\n    let node2 = TreeNode(value: 2)\n    let node3 = TreeNode(value: 3)\n    let node4 = TreeNode(value: 4)\n    let node5 = TreeNode(value: 5)\n\n    \/\/ Connect tree structure\n    root.left = node2\n    root.right = node3\n    node2.left = node4\n    node2.right = node5\n\n    \/\/ Output the number of leaf nodes\n    let leafCount = countLeafNodes(root: root)\n    print(\"Number of leaf nodes: \\(leafCount)\")  \/\/ Number of leaf nodes: 3\n    <\/pre>\n<h2>Conclusion<\/h2>\n<p>In this article, we explored how to count the number of leaf nodes in a binary tree using Swift. In the process of designing the algorithm and implementing it, we understood the principles of recursive calls and practiced writing actual code. Such problems are frequently encountered in coding tests, so it&#8217;s important to practice repeatedly to enhance your proficiency.<\/p>\n<h2>Additional Learning Resources<\/h2>\n<p>If you want to find more resources related to the problem of counting leaf nodes, consider the following materials:<\/p>\n<ul>\n<li><a href=\"https:\/\/www.geeksforgeeks.org\/count-leaf-nodes-binary-tree\/\" target=\"_blank\" rel=\"noopener\">GeeksforGeeks: Count Leaf Nodes in Binary Tree<\/a><\/li>\n<li><a href=\"https:\/\/leetcode.com\/problems\/number-of-leaf-nodes-in-binary-tree\/\" target=\"_blank\" rel=\"noopener\">LeetCode: Number of Leaf Nodes in Binary Tree<\/a><\/li>\n<li><a href=\"https:\/\/www.hackerrank.com\/challenges\/tree-level-order-traversal\/problem\" target=\"_blank\" rel=\"noopener\">HackerRank: Tree Level Order Traversal<\/a><\/li>\n<\/ul>\n<p><\/body><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Problem Description A leaf node in a binary tree refers to a node that has no child nodes. Write a function to count the number of leaf nodes in a given binary tree. For example: Input: 1 \/ \\ 2 3 \/ \\ 4 5 Output: 3 (Leaf nodes: 4, 5, 3) Problem Analysis This &hellip; <a href=\"https:\/\/atmokpo.com\/w\/34720\/\" class=\"more-link\">\ub354 \ubcf4\uae30<span class=\"screen-reader-text\"> &#8220;Swift Coding Test Course, Counting Leaf Nodes&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[129],"tags":[],"class_list":["post-34720","post","type-post","status-publish","format-standard","hentry","category-swift-coding-test"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.2 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Swift Coding Test Course, Counting Leaf Nodes - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/atmokpo.com\/w\/34720\/\" \/>\n<meta property=\"og:locale\" content=\"ko_KR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Swift Coding Test Course, Counting Leaf Nodes - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"og:description\" content=\"Problem Description A leaf node in a binary tree refers to a node that has no child nodes. Write a function to count the number of leaf nodes in a given binary tree. For example: Input: 1 \/  2 3 \/  4 5 Output: 3 (Leaf nodes: 4, 5, 3) Problem Analysis This &hellip; \ub354 \ubcf4\uae30 &quot;Swift Coding Test Course, Counting Leaf Nodes&quot;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/atmokpo.com\/w\/34720\/\" \/>\n<meta property=\"og:site_name\" content=\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"article:published_time\" content=\"2024-11-01T09:31:16+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-11-01T11:26:50+00:00\" \/>\n<meta name=\"author\" content=\"root\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@bebubo4\" \/>\n<meta name=\"twitter:site\" content=\"@bebubo4\" \/>\n<meta name=\"twitter:label1\" content=\"\uae00\uc4f4\uc774\" \/>\n\t<meta name=\"twitter:data1\" content=\"root\" \/>\n\t<meta name=\"twitter:label2\" content=\"\uc608\uc0c1 \ub418\ub294 \ud310\ub3c5 \uc2dc\uac04\" \/>\n\t<meta name=\"twitter:data2\" content=\"3\ubd84\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/atmokpo.com\/w\/34720\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/34720\/\"},\"author\":{\"name\":\"root\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7\"},\"headline\":\"Swift Coding Test Course, Counting Leaf Nodes\",\"datePublished\":\"2024-11-01T09:31:16+00:00\",\"dateModified\":\"2024-11-01T11:26:50+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/atmokpo.com\/w\/34720\/\"},\"wordCount\":402,\"publisher\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#organization\"},\"articleSection\":[\"Swift Coding Test\"],\"inLanguage\":\"ko-KR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/atmokpo.com\/w\/34720\/\",\"url\":\"https:\/\/atmokpo.com\/w\/34720\/\",\"name\":\"Swift Coding Test Course, Counting Leaf Nodes - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#website\"},\"datePublished\":\"2024-11-01T09:31:16+00:00\",\"dateModified\":\"2024-11-01T11:26:50+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/atmokpo.com\/w\/34720\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/atmokpo.com\/w\/34720\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/atmokpo.com\/w\/34720\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\ud648\",\"item\":\"https:\/\/atmokpo.com\/w\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Swift Coding Test Course, Counting Leaf Nodes\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/atmokpo.com\/w\/#website\",\"url\":\"https:\/\/atmokpo.com\/w\/\",\"name\":\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/atmokpo.com\/w\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"ko-KR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/atmokpo.com\/w\/#organization\",\"name\":\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\",\"url\":\"https:\/\/atmokpo.com\/w\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/atmokpo.com\/w\/wp-content\/uploads\/2024\/11\/logo.png\",\"contentUrl\":\"https:\/\/atmokpo.com\/w\/wp-content\/uploads\/2024\/11\/logo.png\",\"width\":400,\"height\":400,\"caption\":\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\"},\"image\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/x.com\/bebubo4\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7\",\"name\":\"root\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/708197b41fc6435a7ce22d951b25d4a47e9e904270cb1f04682d4f025066f80c?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/708197b41fc6435a7ce22d951b25d4a47e9e904270cb1f04682d4f025066f80c?s=96&d=mm&r=g\",\"caption\":\"root\"},\"sameAs\":[\"http:\/\/atmokpo.com\/w\"],\"url\":\"https:\/\/atmokpo.com\/w\/author\/root\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Swift Coding Test Course, Counting Leaf Nodes - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/atmokpo.com\/w\/34720\/","og_locale":"ko_KR","og_type":"article","og_title":"Swift Coding Test Course, Counting Leaf Nodes - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","og_description":"Problem Description A leaf node in a binary tree refers to a node that has no child nodes. Write a function to count the number of leaf nodes in a given binary tree. For example: Input: 1 \/  2 3 \/  4 5 Output: 3 (Leaf nodes: 4, 5, 3) Problem Analysis This &hellip; \ub354 \ubcf4\uae30 \"Swift Coding Test Course, Counting Leaf Nodes\"","og_url":"https:\/\/atmokpo.com\/w\/34720\/","og_site_name":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","article_published_time":"2024-11-01T09:31:16+00:00","article_modified_time":"2024-11-01T11:26:50+00:00","author":"root","twitter_card":"summary_large_image","twitter_creator":"@bebubo4","twitter_site":"@bebubo4","twitter_misc":{"\uae00\uc4f4\uc774":"root","\uc608\uc0c1 \ub418\ub294 \ud310\ub3c5 \uc2dc\uac04":"3\ubd84"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/atmokpo.com\/w\/34720\/#article","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/34720\/"},"author":{"name":"root","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7"},"headline":"Swift Coding Test Course, Counting Leaf Nodes","datePublished":"2024-11-01T09:31:16+00:00","dateModified":"2024-11-01T11:26:50+00:00","mainEntityOfPage":{"@id":"https:\/\/atmokpo.com\/w\/34720\/"},"wordCount":402,"publisher":{"@id":"https:\/\/atmokpo.com\/w\/#organization"},"articleSection":["Swift Coding Test"],"inLanguage":"ko-KR"},{"@type":"WebPage","@id":"https:\/\/atmokpo.com\/w\/34720\/","url":"https:\/\/atmokpo.com\/w\/34720\/","name":"Swift Coding Test Course, Counting Leaf Nodes - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/#website"},"datePublished":"2024-11-01T09:31:16+00:00","dateModified":"2024-11-01T11:26:50+00:00","breadcrumb":{"@id":"https:\/\/atmokpo.com\/w\/34720\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/atmokpo.com\/w\/34720\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/atmokpo.com\/w\/34720\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\ud648","item":"https:\/\/atmokpo.com\/w\/en\/"},{"@type":"ListItem","position":2,"name":"Swift Coding Test Course, Counting Leaf Nodes"}]},{"@type":"WebSite","@id":"https:\/\/atmokpo.com\/w\/#website","url":"https:\/\/atmokpo.com\/w\/","name":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","description":"","publisher":{"@id":"https:\/\/atmokpo.com\/w\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/atmokpo.com\/w\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"ko-KR"},{"@type":"Organization","@id":"https:\/\/atmokpo.com\/w\/#organization","name":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","url":"https:\/\/atmokpo.com\/w\/","logo":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/logo\/image\/","url":"https:\/\/atmokpo.com\/w\/wp-content\/uploads\/2024\/11\/logo.png","contentUrl":"https:\/\/atmokpo.com\/w\/wp-content\/uploads\/2024\/11\/logo.png","width":400,"height":400,"caption":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8"},"image":{"@id":"https:\/\/atmokpo.com\/w\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/bebubo4"]},{"@type":"Person","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7","name":"root","image":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/708197b41fc6435a7ce22d951b25d4a47e9e904270cb1f04682d4f025066f80c?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/708197b41fc6435a7ce22d951b25d4a47e9e904270cb1f04682d4f025066f80c?s=96&d=mm&r=g","caption":"root"},"sameAs":["http:\/\/atmokpo.com\/w"],"url":"https:\/\/atmokpo.com\/w\/author\/root\/"}]}},"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack-related-posts":[],"_links":{"self":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/34720","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/comments?post=34720"}],"version-history":[{"count":1,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/34720\/revisions"}],"predecessor-version":[{"id":34721,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/34720\/revisions\/34721"}],"wp:attachment":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/media?parent=34720"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/categories?post=34720"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/tags?post=34720"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}