原创 《劍指offer》-從尾到頭打印單鏈表

import java.util.ArrayList; import java.util.Stack; /* * 輸入一個鏈表,從尾到頭打印鏈表每個節點的值。 */ class ListNode { int val; List

原创 《劍指offer》-判斷序列是否爲棧的彈出順序

import java.util.Stack; /* * 輸入兩個整數序列,第一個序列表示棧的壓入順序,請判斷第二個序列是否爲該棧的彈出順序。 * 假設壓入棧的所有數字均不相等。 * 例如:序列1,2,3,4,5是某棧的壓入順序,

原创 《劍指offer》-刪除單鏈表中重複的結點

/* * 在一個排序的鏈表中,存在重複的結點,請刪除該鏈表中重複的結點,重複的結點不保留,返回鏈表頭指針。 * 例如,鏈表1->2->3->3-4->4->5 處理後爲 1->2->5 * 遞歸思想 */ class ListN

原创 spark rdd互轉

package com.scala.test; import org.apache.log4j.Level; import org.apache.log4j.Logger; import org.apache.spark.api.ja

原创 《劍指offer》-用兩個棧來實現一個隊列

import java.util.Stack; /* *用兩個棧來實現一個隊列,完成隊列的Push和Pop操作。 隊列中的元素爲int類型。 *思路:兩次先進後出變成先進先出(畫圖) */ public class UseStack

原创 《劍指offer》-複雜鏈表的複製

/* * 輸入一個複雜鏈表(每個節點中有節點值,以及兩個指針, * 一個指向下一個節點,另一個特殊指針指向任意一個節點),返回結果爲複製後複雜鏈表的head。 *(注意,輸出結果中請不要返回參數中的節點引用,否則判題程序會直接返回空

原创 《劍指offer》-反轉單鏈表

/* *輸入一個鏈表,反轉鏈表後,輸出鏈表的所有元素。 */ public class ReverseList { public ListNode reverseList(ListNode head) { if(head ==

原创 《劍指offer》-判斷某整數數組是不是某二叉搜索樹後序遍歷的結果

/* * 輸入一個整數數組,判斷該數組是不是某二叉搜索樹的後序遍歷的結果。 * 如果是則輸出Yes,否則輸出No。假設輸入的數組的任意兩個數字都互不相同。 * 思路:二叉排序樹:左子樹比根節點小,右子樹比根節點大。 * 從後序遍歷

原创 《劍指offer》-尋找兩個單鏈表第一個公共的節點

import java.util.Stack; /* * 找到兩個鏈表第一個公共的節點 */ class ListNode { int val; ListNode next = null; ListNode(int va

原创 《劍指offer》-輸出鏈表中倒數第k個結點

/* * 輸入一個鏈表,輸出該鏈表中倒數第k個結點。 */ class ListNode { int val; ListNode next = null; ListNode(int val){ this.val

原创 《劍指offer》-重建二叉樹

/* * 輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建出該二叉樹。 * 假設輸入的前序遍歷和中序遍歷的結果中都不含重複的數字。 * 例如輸入前序遍歷序列{1,2,4,7,3,5,6,8}和中序遍歷序列{4,7,2,1,5,3,8,

原创 《劍指offer》-序列化和反序列化二叉樹

/* *請實現兩個函數,分別用來序列化和反序列化二叉樹 *注:這裏採用的是前序遍歷的方式 */ public class SerializeBinaryTree { String Serialize(TreeNode ro

原创 《劍指offer》-實現一個能夠得到棧最小元素的min函數

/* * 定義棧的數據結構,請在該類型中實現一個能夠得到棧最小元素的min函數。 * 思路:構造一個輔助棧,保證每一次輔助棧壓入的都是當前棧的最小元素 */ import java.util.Stack; public class

原创 《劍指offer》-將二叉搜索樹轉化爲雙向鏈表

/* * 輸入一棵二叉搜索樹,將該二叉搜索樹轉換成一個排序的雙向鏈表。 * 要求不能創建任何新的結點,只能調整樹中結點指針的指向。 */ public class ConvertBinaryTreeToDoublyLinkedLis

原创 《劍指offer》-合成兩個單鏈表

/* * 輸入兩個單調遞增的鏈表,輸出兩個鏈表合成後的鏈表,當然我們需要合成後的鏈表滿足單調不減規則。 * 思路: * 魯棒性:如果list爲空,返回list2;如果list2爲空,返回list1;如果兩者都爲空,返回空 * 比較