IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> leetcode刷题-go(二) -> 正文阅读

[数据结构与算法]leetcode刷题-go(二)

leetcode21 合并两个有序链表

描述:将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。在这里插入图片描述
此题为简单题,没什么需要讲的,主要是为了熟悉go的代码。

/**
 * Definition for singly-linked list.
 * type ListNode struct {
 *     Val int
 *     Next *ListNode
 * }
 */
func mergeTwoLists(list1 *ListNode, list2 *ListNode) *ListNode {
	head := new(ListNode)
	head1 := head
	for list1 != nil && list2 != nil{
		if list1.Val >= list2.Val{
			node := list1
			list1 = list1.Next
			head1.Next = node
		}else{
			node := list2
			list2 = list2.Next
			head1.Next = node
		}
		head1 = head1.Next
	}
	
	for list1 != nil{
		node := list1
		list1 = list1.Next
		head1.Next = node
		head1 = head1.Next
	}
	
	for list2 != nil{
		node := list2
		list2 = list2.Next
		head1.Next = node
		head1 = head1.Next
	}
	
	head1.Next = nil
	return head.Next
}

leetcode94 二叉树的中序遍历

	给定一个二叉树的根节点 root ,返回 它的 中序 遍历 。

在这里插入图片描述
题意比较简单,采用递归的话也就几行代码。

/**
 * Definition for a binary tree node.
 * type TreeNode struct {
 *     Val int
 *     Left *TreeNode
 *     Right *TreeNode
 * }
 */


func inorderTraversal(root *TreeNode) (res []int) {
    var inorder func(node *TreeNode)
	inorder = func(node *TreeNode) {
		if node == nil {
			return
		}
		inorder(node.Left)
		res = append(res, node.Val)
		inorder(node.Right)
	}
	inorder(root)
	return
}

leetcode 101 对称二叉树

	给你一个二叉树的根节点 root , 检查它是否轴对称。

在这里插入图片描述

/**
 * Definition for a binary tree node.
 * type TreeNode struct {
 *     Val int
 *     Left *TreeNode
 *     Right *TreeNode
 * }
 */
func isSymmetric(root *TreeNode) bool {
    if root == nil{
        return true
    }
    var _isSymmetric func(node1, node2 *TreeNode)bool

    _isSymmetric = func(node1, node2 *TreeNode)bool{
        if node1 == nil && node2 == nil{
            return true
        }else if node1 == nil || node2 == nil{
            return false
        }else if node2.Val != node1.Val{
            return false
        }else{
            return _isSymmetric(node1.Left, node2.Right) && _isSymmetric(node1.Right, node2.Left)
        }
    }
    return _isSymmetric(root.Left, root.Right)
}

leetcode 104 二叉树的最大深度

	给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。

说明: 叶子节点是指没有子节点的节点。

示例:
给定二叉树 [3,9,20,null,null,15,7],

3 
/ \
9  20
	/  \
	15   7

返回它的最大深度 3 。

/**
 * Definition for a binary tree node.
 * type TreeNode struct {
 *     Val int
 *     Left *TreeNode
 *     Right *TreeNode
 * }
 */
func max(a, b int)int{
    if a > b{
        return a
    }else{
        return b
    }
}

func maxDepth(root *TreeNode) int {
    if root == nil{
        return 0
    }else{
        return max(maxDepth(root.Left), maxDepth(root.Right)) + 1
    }
}

leetcode 141 环形链表
给你一个链表的头节点 head ,判断链表中是否有环。
如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。注意:pos 不作为参数进行传递 。仅仅是为了标识链表的实际情况。
如果链表中存在环 ,则返回 true 。 否则,返回 false 。
在这里插入图片描述

/**
 * Definition for singly-linked list.
 * type ListNode struct {
 *     Val int
 *     Next *ListNode
 * }
 */
func hasCycle(head *ListNode) bool {
    if head == nil || head.Next == nil{
        return false
    }else{
        slow, fast := head, head.Next
        for slow != nil && fast != nil && slow != fast{
            slow = slow.Next
            fast = fast.Next
            if fast!= nil{
                fast = fast.Next
            }
        }
        return slow == fast
    }
}
  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2022-05-21 19:13:41  更:2022-05-21 19:13:43 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 1:52:29-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码