力扣230

先对二叉树进行一次完整遍历,将所有节点存入数组中,最后对数组排序后返回目标值。

<?php

class TreeNode
{
	public $val   = null;
	public $left  = null;
	public $right = null;
	
	function __construct($val = 0, $left = null, $right = null)
	{
		$this->val = $val;
		$this->left = $left;
		$this->right = $right;
	}
}

class Solution
{
	public $map = [];
	
	/**
	 * @param  TreeNode  $root
	 * @param  Integer   $k
	 * @return Integer
	 */
	public function kthSmallest(TreeNode $root, int $k): int
	{
		$this->dfs($root);
		sort($this->map);
		return $this->map[$k - 1];
		
	}
	
	/**
	 * @param $root
	 * @return void
	 */
	public function dfs($root): void
	{
		if ($root == null) {
			return;
		}
		$this->map[] = $root->val;
		$this->dfs($root->left);
		$this->dfs($root->right);
	}
}
$root = new TreeNode(3);
$root->left = new TreeNode(1);
$root->left->right = new TreeNode(2);
$root->right = new TreeNode(4);
$solution = new Solution();
var_dump($solution->kthSmallest($root, 1));
### LeetCode 网站简介 力扣LeetCode)是领扣网络旗下的品牌,专注于程序员的技术成长以及为企业提供技术人才服务[^2]。它起源于美国硅谷,旨在为全球程序员打造一个专业的 IT 技术职业化提升平台。通过该平台,程序员能够实现快速进步并获得长期发展。 #### 功能特点 力扣不仅是一个在线判题系统,还提供了丰富的学习资源和工具来支持用户的技能提升。以下是其主要功能: - **在线判题服务**:用户可以通过解题挑战自己的算法能力,并即时获取反馈。 - **学习工具**:针对不同水平的学习者设计了多样化的课程体系。 - **社区讨论**:鼓励开发者分享经验、解决问题,形成互助氛围。 - **模拟面试**:帮助求职者熟悉实际工作中的编码环节和技术问答过程。 - **Playground 工具**:无需配置本地环境即可开展实验性质的小型项目或者复杂工程的初步探索。 ### 使用方法概述 当您决定尝试一道新题目时,只需点击进入具体问题页面就开始编辑解决方案了。通常情况下,LeetCode会预先定义好函数签名或者其他必要的框架结构;您的任务就是填充这些空白部分以满足题目需求[^1]。与此同时,在顶部导航条里有选项允许更改所使用的程序设计语言以便适应个人偏好或练习特定语法风格。 对于初次使用者来说,建议先浏览官方文档了解更多细节操作指南,这样可以帮助更快地上手平台的各项特性。此外,积极参与论坛交流也是提高效率的好办法之一,因为那里聚集了许多经验丰富的大牛愿意解答疑惑。 ```python def example_function(input_param): """ A placeholder function demonstrating how to start solving problems on LeetCode. Args: input_param (any): The parameter passed into the function as defined by problem statement. Returns: any: Solution according to what is asked in question description. """ result = None # Replace this line with your logic here return result ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值